Carrot2不会显示所有包含搜索特定单词的群集

时间:2018-03-04 13:34:03

标签: java indexing lucene clustered-index carrot2

我从数据库中选择了一些包含StackOverFlow等特定单词的行,并将它们保存在文本文件中。 然后,我使用Lucene索引文件内容。

当我尝试使用Carrot2在索引文件上搜索StackOverFlow时,它不会返回任何文档,但是对于我知道它们至少存在于一个文档中的其他单词,它会返回其中一些文档。

在Carrot2文档中,有一个名为Maximum word document frequency的属性的说明:

  

最大word文档频率。最大文档频率   允许将单词作为所有文档的一部分。带文件的单词   大于maxWordDf的频率将被忽略。例如,何时   maxWordDf为0.4,超过40%的文档中会出现单词   被忽略了。值为1.0表示将采用所有单词   帐户,无论它们出现多少文件。这个属性   当某些单词出现在大多数输入文档中时可能很有用   (例如,来自页眉或页脚的公司名称)这样的词语占主导地位   集群标签。在这种情况下,将maxWordDf设置为低于的值   1.0,例如0.9可以改善集群。

     

此属性的另一个有用的应用是在需要时   仅生成非常特定的簇,即包含的簇   少量文件。这可以通过设置maxWordDf来实现   到极低的值,例如0.1或0.05。

因此,当我将maxWordDf设置为1.0时,没有任何更改,它仍然没有显示搜索文档。

我如何解决我的问题?

1 个答案:

答案 0 :(得分:1)

搜索结果中缺少文档的原因通常是用于索引文档的分析器与Carrot2在搜索期间使用的分析器之间的不匹配。默认情况下,Carrot2使用Lucene的StandardAnalyzer,您使用LuceneDocumentSource.analyzer属性提供不同的分析器。