我在文档中有一个带有整数的多值字段,例如
{
values: [1,2,3,4,5]
}
我应用范围过滤器,例如从2到4并获取带有值的文档列表,包含2,3,4。 现在我想对结果进行排序,并首先返回包含3的文档。
我可以使用脚本排序来完成:
{
sort:{
_script: {
script: "doc['values'].getValues().contains(3) ? 0 : 1",
type: "number"
}
}
}
但我不喜欢它的性能,因为getValues()
实际上返回了一个List,而contains
方法是O(n)。
有更好的方法吗?