在Elasticsearch中考虑以下查询:
GET nyc_visionzero/_search
{
"query": {
"bool": {
"must": [{
"fuzzy": {
"on_street_name": "AVENUE"
}
}
],
"filter": {
"term": {
"borough": "MANHATTAN"
}
}
}
}
}
首先执行filter
部分然后执行fuzzy
还是反过来?如果我想改变执行顺序怎么办?我怎么能这样做?
答案 0 :(得分:-2)
此问题与查询与过滤器上下文主题有关。查询上下文中的所有内容(此处为query.bool.must
)都计入文档的分数,而过滤器上下文中的条件(query.filter
)则为是/否决定。
因此从性能角度来看,过滤器速度更快,可以缓存。另一方面,查询允许一些模糊性。