【发布时间】:2016-05-20 09:16:29
【问题描述】:
我正在创建一个 lucene 搜索应用程序,我使用了具有不同分析器和各自 indexSearcher 的 indexWriter 的多个实例,但即使我知道我已经索引了我正在搜索的特定单词,返回的搜索结果也是空的。
这是我的 SearchEngine 类构造函数
this.indexers = new ArrayList<StandardIndexer>();
this.indexers.add(new StandardIndexer(new StandardAnalyzer()));
this.indexers.add(new StandardIndexer(new EnglishStemAnalyzer()));
this.indexers.add(new StandardIndexer(new KeywordAnalyzer()));
this.indexers.add(new StandardIndexer(new EnglishSynonymAnalyzer()));
this.indexers.add(new StandardIndexer(new EnglishSynonymStemAnalyzer()));
this.indexers.add(new StandardIndexer(new EnglishSynonymKeywordAnalyzer()));
this.searchers = new ArrayList<StandardSearcher>();
for (StandardIndexer indexer : this.indexers) {
this.searchers.add(new StandardSearcher(indexer));
}
StandardIndexer 和 StandardSearcher 是我对 indexer 和 searcher 的实现,我们可以看到 indexer 的实例用于创建 indexSearcher,因此所使用的分析器的目录和类型也在 indexer 和 searcher 之间共享
【问题讨论】: