Solr 中的持续提升多值字段

Constant boost multivalued fields in Solr

我有一个存储字符串的多值字段,我需要对其执行查询。它将 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。我如何实现这样的目标?

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

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

在这种情况下,如果您的文档同时包含第 23 项和第 24 项,或者仅包含其中任何一项,您的得分仍将是 2.0