有人能解释一下如何使用lucene在java中编写ngram查询吗

有人能解释一下如何使用lucene在java中编写ngram查询吗,lucene,search-engine,n-gram,Lucene,Search Engine,N Gram,我有在我的搜索引擎中纳入N克的要求,并使用lucene 4.4作为我的搜索引擎。基本上,我发现学习NGram有些困难,有人能通过展示一些简单的步骤来帮助我吗 提前谢谢 使用具有适合您需要的参数的ShingleMatrixFilter构建您自己的分析器。例如,下面是构建令牌bi-grams分析器的几行代码: public class NGramAnalyzer extends Analyzer { @Override public TokenStream tokenStream(S

我有在我的搜索引擎中纳入N克的要求,并使用lucene 4.4作为我的搜索引擎。基本上,我发现学习NGram有些困难,有人能通过展示一些简单的步骤来帮助我吗


提前谢谢

使用具有适合您需要的参数的ShingleMatrixFilter构建您自己的分析器。例如,下面是构建令牌bi-grams分析器的几行代码:

public class NGramAnalyzer extends Analyzer {
    @Override
    public TokenStream tokenStream(String fieldName, Reader reader) {
       return new StopFilter(new LowerCaseFilter(new ShingleMatrixFilter(new StandardTokenizer(reader),2,2,' ')),
           StopAnalyzer.ENGLISH_STOP_WORDS);
     }
}