部分结果在Solr

时间:2016-05-15 02:45:11

标签: solr

让我们假设在Solr中使用以下单词进行查询:黄色,蓝色,绿色。

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

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

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

如何为此构建查询?

1 个答案:

答案 0 :(得分:0)

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

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

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