繁体   English   中英

我们应该使用什么客户端(java或rest)来索引弹性搜索中的数据?

[英]What client (java or rest) we should use for indexing the data in elastic search?

我使用java客户端在弹性搜索1.4.4中索引我的数据。 但现在我觉得,如果我们正在从1.4.4升级到更新版本2.3.2,使用Java客户端是噩梦。 如果你们中的任何一个人已经使用过,请告诉我使用休息时无法获得的任何好处。

主要好处是性能。 在大多数情况下,Java API比Jest更快。 我建议阅读这篇文章与Elasticsearch接口:挑选客户

运输客户端

它速度非常快,可以在JVM上本地运行。 序列化是有效的,并且发送到/来自Elasticsearch实例的消息和操作几乎没有开销。 它需要保持Elasticsearch服务器和客户端版本在某种程度上同步。 在Elasticsearch 1.0之前,需要完全相同的版本,但较新的版本(1.0及更高版本)支持版本之间的交互。 由于异常序列化以及更新之间的其他潜在微小差异,在客户端和服务器上运行相同的JVM更新版本也是有益的。

结论

很容易花费大量时间来确定无数协议和客户端之间的差异,以便与Elasticsearch一起使用,但选择实际上非常简单:如果可能,请使用您熟悉的高性能HTTP客户端或官方语言绑定。

如果您使用的是Java,则应通过节点客户端选择传输客户端,除非使用节点客户端的性能提升到足以保证额外的网络复杂性。 使用基准来验证性能增益。

我认为这个讨论也很有用。

PS :我引用你的问题:

如果你们中的任何一个人已经使用过,并让我知道任何使用休息时无法获得的好处。

答案就是表现。 我意识到迁移真的很头疼,但你需要决定什么对你更重要:支持或性能。 例如,Jest客户端比Java API更具功能,您可以轻松扩展此功能。 你赢了支持但速度却很快。 阅读更多与本机API的Jest比较

因此,如果您有多个ES集群运行不同的版本,那么使用本机(或传输)客户端将是一个问题,您将需要转到HTTP(我认为Jest是主要选项)。 如果版本控制不是问题,则本机客户端将是您的最佳选择,因为它可识别群集

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM