赞
踩
目录
去数据库查询酒店数据,导入到hotel索引库,实现酒店数据的CRUD基本步骤如下
新建一个测试类,实现文档相关操作,并且完成JavaRestClient的初始化
- public class ElasticsearchDocumentTest {
- //客户端
- private RestHighLevelclient client;
-
-
-
- @BeforeEach
- void setUp(){
- client = new RestHighLevelclient(RestClient.builder(HttpHost.create("http://192.168.15.101:9200")
- ));
- }
-
- @AfterEach
- void tearDown() throws IOException {
- client.close();
- }
- }
示例代码
- @Test
- void testIndexDocument() throws IException {
- // 1.创建request对象
- IndexRequest request = new IndexRequest("indexName").id("1");
- // 2.准备JSON文档
- request.source("{\"namel": "Jack\","agel": 21}",XContentType.JSON);
- // 3.发送请求
- client.index(request, RequestOptions.DEFAULT);
- }
先查询mysql数据,然后给这条数据创建倒排索引,完成mysql转换为索引库的数据添加:
(1)创建文档对应实体
(2)根据id查询数据库数据,并转换
根据id查询到的文档数据是json,需要反序列化为java对象
- @Test
- void testGetDocumentById() throws IOException {
- // 1.创建request对象
- GetRequest request = new GetRequest("indexName","1");
- // 2.发送请求,得到结果
- GetResponse response = client.get(request, RequestOptions.DEFAULT);
- // 3.解析结果
- String json = response.getSourceAsString();
-
- System.out.println(json);
- }
编写代码
修改文档数据有两种方式
方式一(全量更新):再次写入id一样的文档,就会删除旧文档,添加新文档
方式二(局部更新):只更新部分字段
- @Test
- void testUpdateDocumentById() throws IOException {
- // 1.创建request对象
- UpdateRequest request = new UpdateRequest("indexName","1");
- //2.准备参数,每2个参数为一对 key value
- request.doc(
- "age",18,
- "name","Rose"
- );
- //3更新文档
- client.update(request, RequestOptions.DEFAULT);
- }
编写代码
- @Test
- void testDeleteDocument() {
- // 1.准备Request
- DeleteRequest request = new DeleteRequest( index: "hotel", id: "61083");
- // 2.发送请求
- client.deletelrequest,RequestOptions.DEFAULT);
- }
- 初始化RestHighLevelClient
- 创建XxxRequest。XXX是Index、Get、Update、Delete
- 准备参数 (Index和Update时需要)
- 发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete
- 解析结果(Get时需要)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。