[英]How nodes in cluster communicate in ElasticSearch and also how we decide in which node we should store document and later from where to retrieve?
作为弹性搜索的新手,我对此几乎没有疑问。 1)集群中的节点如何与Elastic-Search中的集群通信?
2)我们如何决定应在哪个节点中存储文档,或者如何在不同节点上分发文档?
3)同样在搜索时,我们应该查询的位置意味着节点2中的数据是否可以从节点1查询?
我为此使用Java API。
提前致谢。
在阅读此答案之前,请参考链接以了解elasticsearch的基本术语
答案1) :考虑单个节点正在运行,现在添加一个具有相同集群名称的新节点。 new新节点搜索具有相同群集名称的现有节点。 如果找到新节点,它将聚在一起。然后,第一个节点中的负载和数据在这些节点之间共享。Elasticsearch使用多播来查找节点。 参考 。
答案2) :我们可以使用分片在多个节点上分发文档。 分片将大量文档分割成碎片,让它们由不同的节点处理。我们无法配置要在哪个节点中存储的数据。 但是我们可以配置使用路由将一组相似的数据存储在一个分片中
答案3) :是的,您可以从node1搜索node2中的数据.elasticsearch会将查询发送到所有索引分片并返回数据。它会内部发送查询到每个节点并从所有分片中获取结果并执行map-reduce 。 映射减少结果将返回给您。
希望能帮助到你...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.