【问题标题】:Elasticsearch client maven dependenciesElasticsearch 客户端 Maven 依赖项
【发布时间】:2015-01-02 15:57:36
【问题描述】:

我有一个利用 Elasticsearch 的 web 应用程序。我使用 Elasticsearch 独立服务器并从 webapp 端使用传输客户端进行通信。

目前我在pom.xml 中包含org.elasticsearch:elasticsearch:jar:1.3.4 依赖项,一切正常。关键是这种依赖和传递的总和达到了 20MB,这太荒谬了。我只想使用传输客户端。

有没有更轻量级的客户端依赖?永远是一个吗? (我不想在 REST API 中使用 jest 或 httpclient)。

【问题讨论】:

  • 您是否尝试排除某些传递依赖项?也许不需要所有的 lucene 东西?较新的 maven 版本在排除项中支持通配符。
  • 好主意,虽然我想要一些更直接和可维护的东西。

标签: java maven elasticsearch


【解决方案1】:

您可能正在寻找 Elasticsearch Thrift。 thrift 传输插件允许在 HTTP 之上使用 REST 接口而不是 thrift。

它是一个轻量级客户端,其 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 是否有 Thrift。

编辑:请记住,根据 github 项目页面,Thrift 传输自 Elasticsearch v1.5.0 起已弃用,并将在 2.0 中删除。

【讨论】:

  • 请记住,根据 github 项目页面,Thrift 传输自 Elasticsearch v1.5.0 起已弃用,并将在 2.0 中删除。
  • 我已经在 7 个月前回答了这个问题。路线图不明确。我当时给出的解决方案是可行且正确的。如果您不介意,我会将您的评论添加到答案中
【解决方案2】:

自从提出这个问题(2014 年)以来发生了很多发展,Elasticsearch deprecated the transport client 支持他们的official Java high level rest client,这是现在的首选和事实上的,JEST 的新发展也是停止了,它不再支持新版本的ES了。

【讨论】:

  • 感谢您的回答。不过,我发现没有 Query DSL 的 REST 客户端对我来说用处不大。并且查询 DSL 仍然需要整个 Elasticsearch 依赖才能工作(实际上它是主要依赖的一部分)。
猜你喜欢
  • 2015-10-27
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 2016-08-11
相关资源
最近更新 更多