使用ElasticSearch的JavaAPI 1(UseJavaApiForElasticSearch 1)
配置(configuration)
Maven
要使用相应的API,必须引入所需要的jar包,这里使用的ElasticSearch5.0版本相应的Maven配置如下所示:
1 |
|
日志(Logger)
之后配置日志,这里使用的是log4j2,在src/main/resources
下添加名为log4f2.properties
的文件,并在其中添加如下的内容:
1 | appender.console.type = Console |
整体打包(Embedding jar with dependencies)
将所使用的jar依赖包和你的应用同时打包为一个jar文件,此时不应该使用maven-assembly-plugin
, 因为没有Lucene的jar包,导致该插件无法解析META-INF/service
的结构,相应的你可以使用maven-shade-plugin
插件,配置如下所示
1 |
|
如果有main.class 可加入下面的配置:
1 |
|
使用客户端(Client)
客户端可以做以下几件事情:
- 在已有的集群之上进行,索引,插入,删除,搜索等操作
- 在已有的集群上运行管理员的任务
- 注意: 客户端的主版本号必须同集群节点的版本号相一致
一般通过TransportClient
来连接ES集群
TransportClient
当你使用TansportClient来连接一个ES集群的时候,你并不参与到这个集群中,而是获得这个集群的一个或多个地址,并在实际执行操作的时候,依次的操作它们,尽管大多数的操作都可能是两段式的(It does not join the cluster, but simply gets one or more initial transport addresses and communicates with them in round robin fashion on each action(though most actions will probably be “two hop” operations).)
下面是如何开始和结束一个TransportClient
1 | // on startup |
其中得Setting,按照下面所示进行设置
1 | Settings settings = Settings.builder() |
TransportClient 自身有一个集群发现的功能,其能够动态的添加host和移除之前已有的.
一旦发现功能启用,transport client就将根据其配置的节点列表进行连接,而节点列表的配置则是通过addTransportAddress
来配置的.之后,客户端将调用集群内部的状态API,来发现可用的数据节点.内部客户端的节点列表将替换为只有数据节点,并且这份列表默认每过5秒,刷新一次
如果需要开启发现功能,设置client.trasport.sniff
为true
参考
版权声明:本文由littleji.com创作并发表,转载请注明作者及出处,欢迎关注公众号:littleji_com
本文遵守CC BY0SA 4.0
if you have any questions, please leave a message behind or give an issue
本文链接为:https://blog.littleji.com/2016/11/30/20161130UseJavaApiForElasticSearch1/