我正在使用 Lucene 在 Android 中创建一个字典应用程序。我是否需要StandardAnalyzer
在索引和搜索时提供相同的实例,或者我可以只为两者提供一个新实例?
例如,当我要创建索引时,我会这样做:
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
IndexWriter writer = new IndexWriter(directory,
new IndexWriterConfig(Version.LUCENE_36, analyzer));
然后,当在顶级文档中获得搜索词的最佳片段时,我会这样做:
TokenStream ts = TokenSources.getAnyTokenStream(indexSearcher.getIndexReader(),
hits[i].doc, "definition", analyzer);
或者我可以只替换 with 的所有用法analyzer
吗new StandardAnalyzer(Version.LUCENE_36)
?我问这个是因为我的索引和搜索任务在不同的类中,我想保持最少数量的对象,我在实例之间传递。