[ElasticSearch]使用 java API 进行CRUD操作
2017-10-25 19:54
806 查看
本篇文章将介绍怎样使用 java 对 ElasticSearch 进行操作。
首先需要建立一个 maven 项目,这里不再赘述。
1.在maven 的 pom.xml文件中需要引入以下几个 jar 包
2.在 resources 目录下添加log4j2.properties文件
3.使用TransportClient连接 ElasticSearch。
4.创建索引
使用 json文件来创建索引,生成 json 文件的方式有多种,字符串格式、利用 Map、利用jackson 序列化 beans 到 json、使用 ElasticSearch helps生成(我使用的方式,其它方式实现可参看官方文档)
5.获取索引
6.更新索引
运行后发现作者从“张三”更新为“李四”了。
7.删除索引
索引被删除。
首先需要建立一个 maven 项目,这里不再赘述。
1.在maven 的 pom.xml文件中需要引入以下几个 jar 包
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.6.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.9.1</version> </dependency>
2.在 resources 目录下添加log4j2.properties文件
appender.console.type = Console appender.console.name = console appender.console.layout.type = PatternLayout rootLogger.level = info rootLogger.appenderRef.console.ref = console
3.使用TransportClient连接 ElasticSearch。
Settings settings = Settings.builder().put("cluster.name", "leo").build(); TransportClient client = new PreBuiltTransportClient(settings). addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("***.***.***.***"), 9300)); //***.***.***.*** 表示 ip 地址,本地的话,可以使用 localhost,9300是默认的 api 访问接口
4.创建索引
使用 json文件来创建索引,生成 json 文件的方式有多种,字符串格式、利用 Map、利用jackson 序列化 beans 到 json、使用 ElasticSearch helps生成(我使用的方式,其它方式实现可参看官方文档)
IndexResponse response = client.prepareIndex("books", "book", "1") .setSource(jsonBuilder(). startObject() .field("book_name", "ElasticSearch入门") .field("author", "张三") .field("publish_time", "207-09-09") .endObject()) .get();
5.获取索引
GetResponse getResponse = client.prepareGet("books", "book", "1").execute().actionGet(); System.out.println(getResponse.getSourceAsString());
6.更新索引
UpdateRequest updateRequest = new UpdateRequest(); updateRequest.index("books"); updateRequest.type("book"); updateRequest.id("1"); updateRequest.doc(jsonBuilder().startObject().field("author", "李四").endObject()); try { client.update(updateRequest).get(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); }
运行后发现作者从“张三”更新为“李四”了。
7.删除索引
DeleteResponse response = client.prepareDelete("books", "book", "1").get();
索引被删除。
相关文章推荐
- Elasticsearch简单使用系列--使用Rest API进行CRUD操作
- Elasticsearch简单使用系列--使用Rest API进行CRUD操作
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- java操作elasticsearch使用QueryBuilders进行数据查询
- Windows下使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- 使用Elasticsearch的java api,操作elasticsearch
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- Elasticsearch简单使用系列--使用Java API进行CRUD操作
- Elasticsearch Java-API CRUD Java操作Elasticsearch
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- Elasticsearch简单使用系列--使用Java API进行CRUD操作
- 使用EJB3 Java 持久化API来标准化Java的持久化操作
- Entity Framework 4-第二篇-使用Entity Framework 进行CRUD操作
- 使用EJB3 Java 持久化API来标准化Java的持久化操作
- HBase Java API使用操作例子
- Silverlight 2 (beta1)数据操作(6)——使用LINQ to SQL进行数据CRUD操作(下)
- C#中使用API(SHFileOperation)进行文件操作,特别说明了回收站相关参数
- ASP.NET 4.0 与 Entity Framework 4-第二篇-使用Entity Framework 进行CRUD操作