我想获得fieldA的值大于fieldB值的所有文档。最有效的方法是什么?
有点像这样:
body: {
query: {
bool: {
must: {
range: {
"fieldA": { gt: "this.fieldB" }
}
}
}
}
}
答案 0 :(得分:0)
最有效的方法是将fieldC
索引为fieldA - filedB
并使用范围过滤器查找fieldC
大于0
的所有记录。如果true
大于fieldA
,则它也可以是fieldB
的布尔字段,否则为false
。
如果无法重新编制索引,则可以使用script filter执行此检查,但这实际上意味着每次搜索都会进行完整的索引扫描,因此无法进行扩展。