java - Elasticsearch 客户端 maven 依赖

标签 java maven elasticsearch

我有一个利用 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/

相关文章:

elasticsearch - 关键字标记器与not_analyzed

java - Highcharts 单击时获取列上的颜色

java - 如何对 Azure Web 应用程序使用 XSRF 保护

java - 更改关键不在集合 B 中的 map 元素

java - Maven在尝试连接到Cloudera URL以获取CDH Jar位置时显示错误

java - 在不重启 Tomcat 7 的情况下在 war 部署后更改 xml/property 文件

java - `name` 作为 freemarker 中断中的变量名

elasticsearch - 如何使用 nsq 作为 ELK 堆栈的代理(ElasticSearch+LogStash+Kibana)

elasticsearch - Elasticsearch 分组查询

java - 使用带有 Android SDK 的 Graph API 将图片上传到 Facebook