Java Lucene搜索不返回任何结果,即使它应该返回
我正在创建一个lucene搜索应用程序,我使用了indexWriter的多个实例,使用了不同的分析器和各自的indexSearcher,但是返回的搜索结果是空的,尽管我知道我已经为正在搜索的特定单词编制了索引 这是我的搜索引擎类构造函数Java Lucene搜索不返回任何结果,即使它应该返回,java,search,lucene,Java,Search,Lucene,我正在创建一个lucene搜索应用程序,我使用了indexWriter的多个实例,使用了不同的分析器和各自的indexSearcher,但是返回的搜索结果是空的,尽管我知道我已经为正在搜索的特定单词编制了索引 这是我的搜索引擎类构造函数 this.indexers = new ArrayList<StandardIndexer>(); this.indexers.add(new StandardIndexer(new StandardAnalyzer())); thi
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));
}
this.indexers=new ArrayList();
this.indexers.add(新标准索引器(新标准分析器());
this.indexers.add(新的标准索引器(新的EnglishTempAnalyzer());
添加(新的标准索引器(新的关键字分析器());
this.indexers.add(新标准索引器(新英语语法分析器());
this.indexers.add(新的StandardIndexer(新的EnglishSynonymStemAnalyzer());
this.indexers.add(新的标准索引器(新的EnglishSynonymKeywordAnalyzer());
this.searchers=newarraylist();
for(StandardIndexer索引器:this.indexer){
this.searchers.add(新的标准搜索器(索引器));
}
StandardIndexer和StandardSearcher是我对indexer和searcher的实现,因为我们可以看到indexer的实例用于创建indexSearcher,因此所使用的分析器的目录和类型也在indexer和searcher对之间共享您的问题是关于未知代码中的已知错误 所以我一般写:
- 您必须使用“几乎”相同的分析器进行索引和搜索。因此,最终索引中的标记(=词干后的单词)必须与查询中的标记匹配
- 在搜索索引文档之前,必须确保已完成提交
- 请注意,标准查询解析器在空格处拆分单词。如果没有额外的工作,您无法搜索带有空格的标记(转义空格,使用短语搜索…)
- 您可以使用luke查看索引目录