问题更在于:“Elasticsearch 节点如何交互以给出特定的搜索结果以及搜索请求的流程是什么?”
我参考了以下链接来理解,但它们对于我想要理解的内容不是很清楚。
- https://www.elastic.co/guide/en/elasticsearch/reference/master/ingest.html https://www.elastic.co/guide/en/elasticsearch/reference/master/ingest.html
- https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html
根据上述文档,
- “数据节点”是在调用 _search 查询时执行所有处理的节点。
- “摄取节点”在对数据建立索引之前会进行一些预处理。
那么,以上两种说法是否正确呢?
因此,
- 当 _search 查询发生时,Ingest 节点有什么角色可以执行吗?
- 当数据被索引时,数据节点有什么作用吗?
- 当搜索数据时,还有其他节点可以发挥作用吗?
或者,如果您可以帮助解释搜索请求的流程(哪个节点接收 API 调用、哪个节点过滤数据、哪个节点运行聚合等),那么这将非常有帮助。
如果相关,那么我使用 Elastic Search 7.5
-
当 Ingest 节点有任何角色可以执行时_search
发生查询吗?如果是专用的ingest
节点比否,如果它还保存数据(分片和副本)比是。
-
当数据被索引时,数据节点有什么作用吗?是的,数据节点实际上保存着数据(分片和副本),最终它们负责索引和搜索这些数据
-
当搜索数据时,还有其他节点可以发挥作用吗?是的,请参阅责任协调作用 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#coordinating-node in ES.
简而言之,摄取节点只是进行数据的转换,而数据节点实际上保存着数据,并且所有角色可以专用或共享给ES中的一个节点。
以下是搜索请求的步骤--
- 协调节点接收请求,它可以是专用节点或数据节点来完成此工作(默认)。
- 协调节点将请求转发到数据节点,数据节点保存搜索请求的分片(主分片或副本分片)。
- 数据节点进行本地搜索并将结果发送回协调节点。
- 协调节点将聚合所有节点的前 10 个搜索结果(默认为 10)并发送回响应。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)