【发布时间】:2019-05-04 03:48:16
【问题描述】:
我在这里查看了其他 Lucene 评分问题,但似乎没有一个能涵盖我的问题。
我正在索引一些大型 Word 文件。这些文件中的行被拆分,文件中的每 10 行被制成一个 Lucene Document(实际上它们是重叠的 10 行 Documents,但这不相关)。
例如,当我搜索“泡沫绽放”时......我发现,令我有点惊讶的是,如果其中一个词在给定的Document 中出现两次,它几乎被视为“就像就像”在同一个Document 中找到两个搜索词(即“bubble”和“bloom”)。
另外,包含 3 个单词“bubble”实例的 Document(10 行)将列在包含 1 个“bubble”和 1 个“bloom”的 Document 之前。一个带有 2 x“气泡”的单词似乎与带有两个单词的 Document 相等。
注意像这样的String,“泡沫绽放”似乎会被QueryParser.parse() 变成带有两个子句的BooleanQuery。
有没有办法调整事情,以便在 Document 中找到两个词(搜索词)这一事实将 Document 排名高于找到其中一个词的 2 或 3 个实例,但另一个词的实例为零?
顺便说一句,我刚刚进行了一次搜索,其中搜索字符串为“+bubble +bloom”...显然这不包括缺少一个单词的任何Document。但我认为这是一种解决方法。我希望没有“+”(代表“require”)的默认功能能够对所有术语都存在更高的事实进行评分。
【问题讨论】: