赞
踩
- <properties>
- <java.version>1.8</java.version>
- <elasticsearch.version>6.8.13</elasticsearch.version>
- </properties>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.54</version>
- </dependency>
-
- <dependency>
- <groupId>org.elasticsearch.client</groupId>
- <artifactId>elasticsearch-rest-high-level-client</artifactId>
- </dependency>
- <dependency>
- <groupId>org.elasticsearch.client</groupId>
- <artifactId>elasticsearch-rest-client</artifactId>
- </dependency>
- <dependency>
- <groupId>org.elasticsearch</groupId>
- <artifactId>elasticsearch</artifactId>
- </dependency>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- package cn.com.galaxy.elkTest;
-
- import ch.qos.logback.core.joran.spi.NoAutoStart;
- import lombok.Data;
- import lombok.NoArgsConstructor;
-
- @Data
- public class Employee {
-
- private String name;
- private Integer age;
- private String text;
- private String num;
-
- public Employee() {
- }
-
- public Employee(String name, Integer age, String text, String num) {
- this.name = name;
- this.age = age;
- this.text = text;
- this.num = num;
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- package cn.com.galaxy.elkTest;
-
-
- import com.alibaba.fastjson2.JSON;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.bulk.BulkRequest;
- import org.elasticsearch.action.bulk.BulkResponse;
- import org.elasticsearch.action.delete.DeleteRequest;
- import org.elasticsearch.action.delete.DeleteResponse;
- import org.elasticsearch.action.index.IndexRequest;
- import org.elasticsearch.action.index.IndexResponse;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.action.update.UpdateRequest;
- import org.elasticsearch.action.update.UpdateResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestClientBuilder;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.client.indices.CreateIndexRequest;
- import org.elasticsearch.common.xcontent.XContentType;
- import org.elasticsearch.index.query.BoolQueryBuilder;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.rest.RestStatus;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
- import org.junit.jupiter.api.Test;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
-
- import java.io.IOException;
- import java.util.ArrayList;
-
- @Slf4j
- @Configuration
- public class EsConfig {
- @Bean
- public RestHighLevelClient restHighLevelClient() {
- RestHighLevelClient client = new RestHighLevelClient(
- RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));
- return client;
- }
-
- @Test
- void testCreateIndex() throws IOException {
- HttpHost host = HttpHost.create("http://124.221.27.165:9200");
- RestClientBuilder builder = RestClient.builder(host);
- RestHighLevelClient client = new RestHighLevelClient(builder);
-
- CreateIndexRequest request = new CreateIndexRequest("user");
- client.indices().create(request, RequestOptions.DEFAULT);
-
- client.close();
- }
-
- /**
- * 批量添加
- *
- * @throws IOException
- */
- @Test
- void add() throws IOException {
- RestHighLevelClient client = restHighLevelClient();
- BulkRequest bulkRequest = new BulkRequest();
-
- ArrayList<Employee> users = new ArrayList<>();
- users.add(new Employee("李文", 23, "研发工程师", "2352"));
- users.add(new Employee("罗文", 17, "测试工程师", "8732"));
- users.add(new Employee("徐洁", 22, "算法工程师", "8791"));
- users.add(new Employee("罗辑", 31, "高级研发工程师", "8765"));
- users.add(new Employee("叶文洁", 70, "资深研发工程师", "8551"));
-
- for (int i = 0; i < users.size(); i++) {
- bulkRequest.add(new IndexRequest("test").id("" + (i + 1)).type("pinyin")
- .source(JSON.toJSONString(users.get(i)), XContentType.JSON));
- }
- BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);
- System.out.println(!bulkResponse.hasFailures());
- }
-
- /**
- * 添加单条记录
- * @throws IOException
- */
- @Test
- void add2() throws IOException {
- RestHighLevelClient client = restHighLevelClient();
- // 1.要在指定索引下创建文档,所以要先创建索引,再创建文档
- IndexRequest request=new IndexRequest();
- // index()方法设置索引名;id()方法设置唯一id标识
- request.index("test").id("5").type("pinyin");
- // 2.创建实体类对象,填充数据
- Employee employee=new Employee();
- employee.setName("张三丰");
- employee.setAge(30);
- employee.setNum("23");
- employee.setText("添加");
- // 3.利用jackson将实体类对象转换成JSON格式字符串
- request.source(JSON.toJSONString(employee), XContentType.JSON);
- // 5.发送请求,获取响应结果
- IndexResponse response = client.index(request, RequestOptions.DEFAULT);
- System.out.println("_index: "+response.getIndex());
- System.out.println("_id: "+response.getId());
- System.out.println("_result: "+response.getResult());
- }
-
-
- /**
- * 修改
- */
- @Test
- void update() throws IOException {
- RestHighLevelClient client = restHighLevelClient();
- UpdateRequest request = new UpdateRequest("test", "pinyin", "1");
- Employee user = new Employee("张三", 18, "测试", "1234");
- request.doc(JSON.toJSONString(user), XContentType.JSON);
- UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT);
- System.out.println(updateResponse.status() == RestStatus.OK);
- }
-
- /**
- * 删除
- */
- @Test
- void delete() throws IOException {
- RestHighLevelClient client = restHighLevelClient();
- HttpHost host = HttpHost.create("http://124.221.27.165:9200");
- client = new RestHighLevelClient(RestClient.builder(host));
-
- DeleteRequest request = new DeleteRequest("test", "pinyin", "5");
- DeleteResponse deleteResponse = client.delete(request, RequestOptions.DEFAULT);
- System.out.println(deleteResponse.status() == RestStatus.OK);
- }
-
-
- /**
- * 全查(除id)
- *
- * @throws Exception
- */
- @Test
- public void select() {
- RestHighLevelClient client = restHighLevelClient();
- try {
- // 构建查询条件
- SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
- // 创建查询请求对象,将查询对象配置到其中
- SearchRequest searchRequest = new SearchRequest("test");
- searchRequest.source(searchSourceBuilder);
- // 执行查询,然后处理响应结果
- SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
- // 根据状态和数据条数验证是否返回了数据
- if (RestStatus.OK.equals(searchResponse.status())) {
- SearchHits hits = searchResponse.getHits();
- for (SearchHit hit : hits) {
- // 将 JSON 转换成对象
- Employee userInfo = JSON.parseObject(hit.getSourceAsString(), Employee.class);
- // 输出查询信息
- System.out.println(userInfo.toString());
- }
- }
- } catch (IOException e) {
- log.error("", e);
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。