我有一个存储字符串的多值字段,我需要执行查询。它将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.我如何实现这样的目标?
答案 0 :(得分:0)
一种可能的选择是将此查询转换为 ConstantScoreQuery ,方法是将 ^ 替换为 ^ =
q: (id:'23' OR id:'24')^=2
在这种情况下,如果您的文档同时包含第23条和第24条,或者只包含其中任何一条,您仍然可以获得相同的2.0分