java - Lucene Search 不返回任何结果,即使它应该返回

标签 java search lucene

我正在创建一个 lucene 搜索应用程序,我将 indexWriter 的多个实例与不同的分析器和各自的 indexSearcher 一起使用,但是返回的搜索结果是空的,即使我知道我已经为我正在搜索的特定单词建立了索引。

这是我的 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 是我对索引器和搜索器的实现,我们可以看到索引器的实例用于创建 indexSearcher,因此所使用的目录和分析器类型也在索引器和搜索器对之间共享

最佳答案

您的问题是关于未知代码中的已知错误。

所以我一般这样写:

  • 您必须使用“几乎”相同的分析器进行索引和搜索。所以最终索引中的标记(=词干提取后的词)必须与查询中的标记相匹配。
  • 您必须确保提交已完成,然后才能搜索索引文档。
  • 请注意,标准查询解析器会在空格处拆分单词。如果没有额外的工作,您无法搜索带有空格的标记(转义空格,使用短语 .. 搜索)
  • 您可以使用 luke 查看您的索引目录 https://github.com/DmitryKey/luke

关于java - Lucene Search 不返回任何结果,即使它应该返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308114/

相关文章:

Java 键绑定(bind)在按键时输出到控制台

html - CSS 属性 "text-transform"会影响 SEO 结果吗?

Java在codechef问题中包含字符串搜索

arrays - 在二维数组中查找连续 block

java - Solr 在组合查询中按分数排序

solr 3.6.1 在破折号处分割单词边界

java - org.hibernate.MappingException : Could not determine typ

java - 在 Java 中向 Actor 发送 PoisonPill

java - java上牛顿法实例讲解

python - 搜索-根据关键字最左端的接近程度来计算相关性?