Lucene bigrams标记器,包括标点符号

Lucene bigrams标记器,包括标点符号,lucene,punctuation,Lucene,Punctuation,我是否有可能使用Lucene的ShingleanalyzerRapper生成考虑标点符号(即:.\,\;)的双格图?快速示例:如果字段“一二;三四”只提供两个bigram:(一二)和(三四)?您可以创建一个使用基于字母标记器的分析器的ShingleanalyzerRapper字母标记器在非字母处断开输入文本。比如: public class MyCharAnalyzer extends Analyzer { public TokenStream tokenStream(String fi

我是否有可能使用Lucene的ShingleanalyzerRapper生成考虑标点符号(即:.\,\;)的双格图?快速示例:如果字段“一二;三四”只提供两个bigram:(一二)和(三四)?

您可以创建一个使用基于
字母标记器的分析器的
ShingleanalyzerRapper
<代码>字母标记器
在非字母处断开输入文本。比如:

public class MyCharAnalyzer extends Analyzer { 

  public TokenStream tokenStream(String fieldName, Reader reader) {
    TokenStream result = new LetterTokenizer(reader);    
    return result;
  }
}

ShingleAnalyzerWrapper myBigramWrapper = new ShingleAnalyzerWrapper(new MyCharAnalyzer());

如果你想更好地控制你所考虑的标点符号,你可以将子类归类为<代码> CharTokenizer <代码>,并重写<代码> istoEnChanCube()/<代码>方法。