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
我有一个存储字符串的多值字段,我需要对其执行查询。它将 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