【问题标题】:Solr - Proximity search using exact number of words apartSolr - 使用确切的单词数进行邻近搜索
【发布时间】:2012-09-15 12:01:38
【问题描述】:

我正在 Windows 机器上使用 apache-solr-3.6.0。我想搜索两个相隔一定数量的单词(不超过这个数字)。 例如: 考虑以下短语,我想以不超过 2 个单词的方式搜索 Daisy 和考试。

Daisy has exam.
Daisy has an exam.
Daisy has a math exam.
Daisy has a difficult math exam.

我搜索了这样的东西并尝试了 Term Proximity。

http://localhost:8983/solr/select/?q="Daisy exam"~2&version=2.2&start=0&rows=10&indent=on&debugQuery=true

我需要的结果应该是短语:Daisy has an exam. 但是使用上述条件,结果是最后 3 个短语。

那么有什么想法可以分开使用确切数量的单词吗?

【问题讨论】:

    标签: solr solrj


    【解决方案1】:

    在此处查看相关问题: Solr proximity ordered vs unordered

    当您说“相距不超过 2 个单词”时,您应该匹配第一个和第二个短语。那么您的查询将是 "Daisy exam"~1,它将匹配 Daisy 检查和它们之间的插入(这是一个更改:将 exam 位置从 2 更改为 3)。

    为了防止匹配结果中出现“Daisy 检查”,您可以在查询中添加-"Daisy exam"。或者,您可以将fq=-"Daisy exam" 添加到您的查询字符串参数中。

    【讨论】:

    • 感谢您的回复,但我希望结果是以下短语:Daisy has an exam. 并使用 ~1 不会达到该结果。即使使用~2 也不会让我得到确切的结果,就好像有一个短语:Daisy exam. 它会被包含在内,这不是我想要的。有什么想法吗?
    • 我认为 Solr 不可能做到这一点,因为 q~x 匹配更改小于或等于 x 的文档。顺便说一句,如果解决了这个问题,你可以直接排除fq中的“Daisy考试”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 2011-02-26
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多