在Solr中不断提升多值字段

时间:2017-09-11 07:46:26

标签: boost lucene solr-boost

我有一个存储字符串的多值字段,我需要执行查询。它将ID存储为字符串。所以,这是领域:

   <field name="id" type="string" indexed="true" stored="true" multiValued="true" termVectors="true"/>

查询看起来像

q: (id:'23' OR id:'24')^2

这会筛选出字段为23或24的文档。具有这两个ID的文档位于顶部,具有这些ID的文档位于下方。

我想要的是2的持续提升。如果至少有一个ID匹配,请给它增加2.我如何实现这样的目标?

1 个答案:

答案 0 :(得分:0)

一种可能的选择是将此查询转换为 ConstantScoreQuery ,方法是将 ^ 替换为 ^ =

q: (id:'23' OR id:'24')^=2

在这种情况下,如果您的文档同时包含第23条和第24条,或者只包含其中任何一条,您仍然可以获得相同的2.0分