Elasticsearch5.4集群(二)java API升级
2017-07-04 11:41
591 查看
Elasticsearch从1.7.1升到5.4.1后,java客户端遇到了一些错误。
unsorportedClassVersion
出现unsorportedClassVersion等类似问题。由于elasticsearch 5.0 以及以后版本 使用了Java lambda表达式等新特性,因此jdk 版本必须是1.8 以上版本(含1.8)
log4j相关异常
启动报错:
(https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/_log4j_2_logger.html)
(http://mvnrepository.com/artifact/org.elasticsearch/elasticsearch/5.4.2)
ES数据操作
client的构造方式有变更(参照官网:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html)
(批量插入:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk.html)
unsorportedClassVersion
出现unsorportedClassVersion等类似问题。由于elasticsearch 5.0 以及以后版本 使用了Java lambda表达式等新特性,因此jdk 版本必须是1.8 以上版本(含1.8)
log4j相关异常
启动报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger缺少包依赖,log4j-api是es5.0的强依赖
(https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/_log4j_2_logger.html)
(http://mvnrepository.com/artifact/org.elasticsearch/elasticsearch/5.4.2)
org.elasticsearchelasticsearch5.4.1org.elasticsearch.clienttransport5.4.1org.apache.logging.log4jlog4j-api2.8.2org.apache.logging.log4jlog4j-core2.8.2
ES数据操作
client的构造方式有变更(参照官网:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html)
(批量插入:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk.html)
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import java.net.InetAddress; import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.transport.client.PreBuiltTransportClient; public class TestEsOperator { public static void main(String[] args) { TransportClient client = null; PreBuiltTransportClient preBuiltTransportClient = null; try { // 设置集群名称 Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build(); //Settings settings = Settings.builder().put("client.transport.sniff", true).build(); // 创建client preBuiltTransportClient = new PreBuiltTransportClient(settings); client = preBuiltTransportClient .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.1.10"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.1.11"), 9300)); // 搜索数据 GetResponse response = client.prepareGet("test", "china", "1").execute().actionGet(); // 输出结果 System.out.println(response.getSourceAsString()); // 插入数据 // IndexResponse insertResponse = client.prepareIndex("test", "china").setSource(jsonBuilder() // .startObject() // .field("user", "kimchy") // .field("msg", "trying out Elasticsearch").endObject()) // .get(); // System.out.println(insertResponse); // 批量插入 String indexName = "test"; String type = "usa"; BulkRequestBuilder bulkRequestBuilder = client.prepareBulk(); for (int i = 1; i <= 5; i++){ bulkRequestBuilder.add(client.prepareIndex(indexName, type).setSource(jsonBuilder().startObject().field("msg", "msg---" + i).endObject())); } BulkResponse bulkResponse = bulkRequestBuilder.execute().actionGet(); bulkRequestBuilder.request().requests().clear(); if (bulkResponse.hasFailures()){ System.out.println("failure"); } System.out.println("bulkResponse:" + bulkResponse); } catch (Exception e) { e.printStackTrace(); } finally { if (client != null) { // 关闭client client.close(); } } } }
相关文章推荐
- ELK研究(一):elasticsearch java api接口操作ES集群 ---TransportClient的使用介绍 bulk批量提交数据
- ElasticSearch Java API(一)连接集群
- ELK研究(一):elasticsearch java api接口操作ES集群 ---TransportClient的使用介绍 bulk批量提交数据
- elasticsearch java query API
- ElasticSearch java API (1)
- Elasticsearch java API (18)Aggregations 聚合 Bucket
- Elasticsearch java API (10)Multi Get API
- ElasticSearch Java api 详解_V1.0
- Elasticsearch java API (22)查询 DSL Joining查询
- Elasticsearch java API (15)Count API
- Elasticsearch java API (3)
- Elasticsearch java API (13)Search API 使用聚合
- Elasticsearch java API (4)部署在JBoss EAP6模块
- Elasticsearch java API (20)查询 DSL
- Elasticsearch java API (23)查询 DSL Geo查询
- Elasticsearch java API (17)Aggregations 聚合 函数
- Elasticsearch java API (8)删除API
- Elasticsearch java API (7)GET API
- Elasticsearch java API (10)批量处理 API
- Elasticsearch java API (21)查询 DSL 项级别查询