弹性搜索java特定配置

时间:2015-09-26 00:28:39

标签: java elasticsearch

我尝试通过java api访问elasticserach的本地实例。 根据{{​​3}},我可以使用" cluster.name" property指定要使用的集群的名称。完善。 遗憾的是,我不能指定要使用的节点名称吗?我可以看到这个也可以在elastic search doc中配置。 也许这是一个不好的做法? 另外,我可以看到configuration我可以定义我所做的自定义服务ID,但是如何将其指定给我的java Transport Client?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

Elasticsearch的重点是创建一个高可用数据的集群。并非所有节点都包含所有数据,并非所有节点都可能一直处于启动状态。如果要通过指定其名称来连接到单个节点,并且由于某种原因该节点已关闭(它已被终止,它正在升级,正在重新配置,数据被擦除以重新编制索引等),那么客户端将无法运行查询并获得结果。

相反,如果连接到群集,ES将确保将查询路由到已启动的群集节点,无论可能关闭的某些节点的状态如何。因此,最佳做法是始终通过cluster.name进行连接,以充分利用ES群集。

对于`SERVICE_ID,它不是您在代码中指定的内容,它只是您在Windows上运行时要为Elasticsearch服务提供的名称。