我有一组 Solr 文档,其中包含(在其他字段中)带有百分比数据的多值字段,如果值为 null,则为 -1,例如
<doc>
...
<arr name="alpha">
<float>0.23</float>
<float>0.23</float>
<float>0.43</float>
</arr>
<arr name="beta">
<float>0.52</float>
<float>-1.0</float>
<float>0.34</float>
</arr>
<arr name="gamma">
<float>-1.0</float>
<float>-1.0</float>
<float>-1.0</float>
</arr>
...
</doc>
我需要为一组完整的测试用例查找多值字段包含或不包含某个成员的文档。如果我可以使以下任一查询起作用,那么从几十万个特定文档中找到一个特定的文档将是一个巨大的帮助:
1)我可以找到一个特定多值字段的成员都不符合特定条件的文档吗?(如果我查询“alpha has no members matching -1”,将返回上述文档。)
2) 我可以找到一个文档,其中至少一个特定的多值字段的成员满足某个标准吗?(如果我查询“alpha 至少有一个成员 > 0”或“beta 至少有一个成员 > 0”,则会返回上述文档。)
我假设像这样的查询alpha:[0 TO 1]
不起作用,因为该字段是一个数组而不是一个标量。“这是不可能的”的明确答案与“这是你如何做的”的答案一样有用 - 在此先感谢。
编辑:与许多问题一样,答案是“重新检查您的假设”——具体来说,生成我们文档的开发人员关闭了百分比字段的索引。