弹性搜索协调节点角色-复杂的聚合 [英] Elastic search coordinating-node role - complex aggregations
问题描述
我了解到坐标节点广播搜索请求,并使用查询然后获取阶段来收集从数据节点接收的结果。
I understood coordinate node broadcasts the search request and gathers the results received from data nodes using "query then fetch phase" .
它是在一次迭代中完成的查询然后获取阶段还是搜索请求可以包含查询的多次迭代,然后获取阶段?
Does it do it in one iteration of "query then fetch phase" or a search request can have multiple iterations of query then fetch phases?
假设采用从弹性搜索复杂方案(版权:Val,感谢@Val),它会涉及查询的多次迭代,然后获取阶段吗?协调节点回答该查询的步骤是什么
Say taking a complex filter query taken from Elastic Search Complex Scenario (credits : Val, Thanks @Val), will it involve multiple iterations of query then fetch phases? what are the steps the coordinating node does to answer this query
{
"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.
这篇关于弹性搜索协调节点角色-复杂的聚合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!