我有一个利用 Elasticsearch 的网络应用程序。我使用 Elasticsearch 独立服务器,并从 webapp 端使用传输客户端进行通信。
目前,我在我的 pom.xml
中包含了 org.elasticsearch:elasticsearch:jar:1.3.4
依赖项,一切正常。关键是这种依赖性连同传递性总和高达 20MB,这是荒谬的。我只想使用传输客户端。
是否有更轻量级的客户端依赖?永远是一个吗? (我不想将 jest 或 httpclient
与 REST API 一起使用)。
最佳答案
您可能正在寻找 Elasticsearch Thrift。 thrift 传输插件允许在 HTTP 之上的 thrift 上使用 REST 接口(interface)。
这是一个轻量级客户端,jar 大约 100kb,您还需要大约 3.4mb 的 apache thrift jar 库:
您可以将这些添加到您的 Maven 依赖项中:
对于 Elasticsearch-Thrift
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-transport-thrift</artifactId>
<version>2.4.0</version>
</dependency>
对于 Apache-Thrift 依赖项:
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.9.0</version>
</dependency>
我相信您将能够根据您的 elasticsearch 集群版本找到您需要使用的版本。
有关 elasticsearch-thrift 的更多信息,请查看 github project page .
并检查 apache thrift official page节俭。
编辑:请记住,根据 github 项目页面,从 Elasticsearch v1.5.0 开始不推荐使用 Thrift 传输,并将在 2.0 中删除。
关于java - Elasticsearch 客户端 maven 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774480/