2014-11-06 161 views
6

我有一个Web应用程序,它利用了Elasticsearch。我使用Elasticsearch独立服务器,并从webapp端传输客户端进行通信。Elasticsearch客户端Maven依赖关系

目前我包括org.elasticsearch:elasticsearch:jar:1.3.4依赖于我的pom.xml和一切工作正常。重要的是,这种依赖与传递总计高达20MB,这是荒谬的。我只想使用传输客户端。

是否有更轻量级的客户端依赖关系?永远是一个吗? (我不想用REST API或httpclient)。

+2

您是否尝试过排除一些传递性依赖?也许所有的lucene东西都不是必需的?较新的Maven版本在排除中支持通配符。 – wemu 2014-11-06 09:17:46

+1

好主意,虽然我想要更直接和可维护的东西。 – yannisf 2014-11-06 11:49:47

回答

0

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

它是一个轻量级的客户端,罐子四周〜100KB,并且还希望apache的节俭罐子库,它是围绕〜3.4MB:

您可以将这些添加到您的Maven依赖:

对于Elasticsearch -Thrift

<dependency> 
    <groupId>org.elasticsearch</groupId> 
    <artifactId>elasticsearch-transport-thrift</artifactId> 
    <version>2.4.0</version> 
</dependency> 

,并为Apache-节俭的依赖关系:

<dependency> 
    <groupId>org.apache.thrift</groupId> 
    <artifactId>libthrift</artifactId> 
    <version>0.9.0</version> 
</dependency> 

我相信您可以根据您的elasticsearch集群版本找到需要使用的版本。

有关elasticsearch-thrift检查github project page的更多信息。

并检查节俭的Apache节俭official page

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

+1

请记住,根据Github项目页面,Thrift传输从Elasticsearch v1.5.0开始已弃用,并将在2.0中删除。 – tiurin 2015-05-07 19:22:14

+1

7个月前我回答了那个问题。路线图不明确。我当时给出的解决方案是可行和正确的。如果您不介意,我会将您的评论添加到答案中 – eliasah 2015-05-07 19:24:37