如何在lucene 4.0中使用ngram tokenizer?

我正在使用没有空格的文本索引大型文本文件。 目前我有ngram方法生成长度为12的字符串然后我索引它们。 同样的搜索方式,我从用户获取字符串生成12的ngrams,然后用它来构建查询。 在搜索时,请阅读lucene中存在的ngram tokenizer。 但是没有找到任何例子。

如何在lucene 4.0中实现ngram tokenizer?

使用NGramTokenizer最简单的方法可能就是这个构造函数只需读取器,以及最小和最大克大小。 您可以将其合并到分析器中,类似于Analyzer文档中的示例。 就像是:

 Analyzer analyzer = new Analyzer() { @Override protected TokenStreamComponents createComponents(String fieldName, Reader reader) { Tokenizer source = new NGramTokenizer(reader, 12, 12); TokenStream filter = new LowercaseFilter(source); return new TokenStreamComponents(source, filter); } };