【问题标题】:Is it possible to have a Solr Query that brings me "all matches" or "some matches" in the same result?是否有可能有一个 Solr 查询在相同的结果中为我带来“所有匹配”或“一些匹配”?
【发布时间】:2014-01-26 16:50:10
【问题描述】:

例如。我将这些行存储在我的 Solr 中。

{city: "Boston", country: "USA"}, 
{city: "Miami", country: "USA"}, 
{city: "Orlando", country: "USA"}

我将按“波士顿美国”进行搜索。在这种情况下,我想返回一个结果,因为我的搜索匹配所有单词。这就是“AND”行为或类似“mm”参数的 100% 值。

但如果我搜索“Texas USA”,我想返回三个结果,因为它无法匹配所有单词,但它至少找到了一个单词。现在,我认为这是“OR”行为或类似“mm”参数的 0 值。

简而言之,我想匹配所有单词。如果没有任何结果,它应该尝试匹配至少一个单词。 唯一查询中是否可以有两种不同的行为?

ps:我正在使用 eDismax 解析器。

【问题讨论】:

    标签: solr edismax


    【解决方案1】:

    一种方法是编写自己的SearchComponent 并在那里实现该逻辑。首先以 mm=100% 运行 edismax 请求,如果得到结果,则返回它们,如果没有,则以 mm=0% 等运行它(您甚至可以通过更多步骤执行,50%...)。

    或者您也可以始终使用 mm=0% 运行,但查看分数/匹配项并仅在客户端保留最佳结果。您可以使用突出显示来查看匹配的单词。

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 2012-05-05
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2015-01-21
      • 2015-03-09
      相关资源
      最近更新 更多