JAVA与elasticsearch的交互

一 环境准备

二 如何创建集群节点的实例

三 常规 API 操作

四 一般性问题

 一 环境准备

1 elasticsearch-2.4.0

2  https://search.maven.org/  *工厂地址

<dependency>
  <groupId>org.elasticsearch.distribution.rpm</groupId>
  <artifactId>elasticsearch</artifactId>
  <version>2.4.0</version>
</dependency>

(此处集群版本和Jar版本应相同)

二 如何创建集群节点的实例

Map<String, String> map = new HashMap();
map.put("cluster.name", "xxx"); //设置集群名称
Settings.Builder settings = Settings.builder().put(map);
Client client = TransportClient.builder().settings(settings).build()
        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"),9300));

map.put("cluster.name", "xxx");
这里的cluster.name需要在elasticsearch-2.4.0\config\elasticsearch.yml 中配置

JAVA与elasticsearch的交互

自此实例创建完成


三 常规 API 操作(增 查)

1 java添加索引到集群中去

elasticSearch中使用索引方式存储数据。即key对应value,所以要将数据json化即可。方法网上有很多种,此处不再复制粘贴

IndexResponse response = client.prepareIndex("index", "info").setSource(jsonData.get(i)).get();
jsonData就是json化的数据
四 一般性问题

1 NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{127.0.0.1}{127.0.0.1:9300}][2018-01-21 20:21:17,500][WARN ][transport.netty          ] [Kristoff von Doom] exception caught on transport layer [[id: 0xa6cfd6c9, /127.0.0.1:55396 => /127.0.0.1:9300]], closing connection

java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆?

配置 elasticsearch-2.4.0\config\elasticsearch.yml 中cluster.name即可


参考

http://blog.****.net/qq_36330643/article/details/78455296

https://*.com/questions/25912572/java-elasticsearch-none-of-the-configured-nodes-are-available