【问题标题】:Partial results in SolrSolr 中的部分结果
【发布时间】:2016-05-15 02:45:11
【问题描述】:

让我们假设 Solr 中包含以下单词的查询:黄色、蓝色、绿色。

我想返回按此顺序匹配的文档:

  • 所有包含:黄色和蓝色和绿色的文档
  • 然后包含(黄色与蓝色)OR(黄色与绿色)或(蓝色与绿色)的文档
  • 然后文档包含黄色或蓝色或绿色

简而言之:匹配所有 3 个词的文档,然后匹配 2 个词,然后匹配单个词。

我该如何构造这个查询?

【问题讨论】:

  • 你试过提升...?
  • Boosting 可以用来返回先是黄色,然后是蓝色,然后是绿色的文档;但它对部分查询没有帮助。
  • 你的字段类型是什么......?

标签: solr


【解决方案1】:

这应该是搜索单个字段时的默认行为。匹配的可选 SHOULD 子句越多 - 得分越高。

但是,如果您使用 Dismax 或 eDismax 并且术语匹配不同的字段,您将获得竞争分数,并且只会选择最高的分数。这可能会导致一个字段中的某些术语掩盖了不同字段中其他术语的存在,并可能为您提供不同的顺序。

在这些情况下尝试的一种策略是tie(Tie Breaker)参数,该参数将考虑那些非最高分数字段匹配的分数。尝试将其设置为 1 以获得极端效果,看看结果是否更符合您的预期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多