我了解到坐标节点广播搜索请求,并使用“查询然后提取阶段”来收集从数据节点接收的结果。
它是在“查询然后取回阶段”的一次迭代中完成的,还是搜索请求可以进行多次查询然后取回阶段的迭代?
假设采取一个来自Elastic Search Complex Scenario的复杂过滤器查询(信用:Val,谢谢@Val),它会涉及查询的多次迭代然后获取阶段吗?协调节点回答该查询的步骤是什么
{
"query": {
"filtered": {
"query": {
"match": {
"product_name": "xxx"
}
},
"filter": {
"bool": {
"must": [
{
"range": {
"price": {
"gte": 20,
"lte": 170
}
}
},
{
"term": {
"availability": "availability_status"
}
},
{
"term": {
"user": 1
}
}
]
}
}
}
}
}
最佳答案
有一些提示。如果有好奇心的人将其张贴在这里
https://discuss.elastic.co/t/elastic-search-coordinating-node-role-complex-aggregations/225622/5
The details change as various things are optimised and evolve.
There are a number of "it depends" e.g. the "canMatch" pre-flight phase will not run if there's insufficient numbers of shards being queried or custom search routing is used or DFS is used.
Cross-cluster-search is another consideration.
Here's probably a good place to start if you're curious.
关于elasticsearch - Elasticsearch 协调节点角色-复杂的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60911130/