从Elasticsearch 2.x开始,我给人的印象是Elasticsearch自动确定应该运行查询的顺序。例如,如果您运行:
{
"query": {
"bool": {
"filter": [
{ "term": { "some_field": "foo" } },
{ "exists": { "field": "bar" } }
]
}
}
}
我相信在这种情况下,它将自动确定是先执行过滤器还是现有过滤器。
如果使用脚本,它如何确定应在执行顺序的哪一点运行脚本?
例如:
{
"query": {
"bool": {
"filter": [
{ "term": { "some_field": "foo" } },
{ "script": ... }
]
}
}
}