赞
踩
之前写的那边那篇SpringBoot集成ES,现在已经不推荐使用的。
建议使用RestHighLevelClient也是官网推荐的。
简单操作使用ElasticsearchRestTemplate就好了,它只是Spring对RestHighLevelClient进行了封装
pom.xml
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
- </dependency>
yml:
- spring:
- elasticsearch:
- rest:
- uris: http://192.168.1.235:9200
- username: admin
- password: admin
实体:
- import lombok.Data;
- import org.springframework.data.annotation.Id;
- import org.springframework.data.elasticsearch.annotations.Document;
- import org.springframework.data.elasticsearch.annotations.Field;
- import org.springframework.data.elasticsearch.annotations.FieldType;
-
- @Data
- @Document(indexName = "test_user", shards = 3, replicas = 2)
- public class TestUser {
-
- @Id
- @Field(type = FieldType.Keyword)
- private String id;
-
- @Field(type = FieldType.Keyword)
- private String name;
-
- @Field(type = FieldType.Integer)
- private Integer age;
-
- @Field(type = FieldType.Keyword)
- private String sex;
-
- @Field(type = FieldType.Keyword)
- private String phone;
-
- }

实现简单的操作:
- import org.elasticsearch.index.query.BoolQueryBuilder;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
- import org.springframework.data.elasticsearch.core.SearchHits;
- import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
- import org.springframework.data.elasticsearch.core.query.*;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- import javax.annotation.Resource;
- import java.util.HashMap;
-
- @RestController
- public class TestUserController {
-
- @Resource
- private ElasticsearchRestTemplate elasticsearchRestTemplate;
-
- /**
- * 保存覆盖数据
- *
- * @return
- */
- @GetMapping("/save")
- public Object save() {
- TestUser testUser = new TestUser();
- testUser.setId("1");
- testUser.setName("张三");
- testUser.setAge(18);
- testUser.setSex("男");
- testUser.setPhone("15812341234");
-
- //indexName默认取@Document中的indexName
- elasticsearchRestTemplate.save(testUser);
-
- //indexName动态指定--索引如果不存在save会自动创建后在存入数据
- elasticsearchRestTemplate.save(testUser, IndexCoordinates.of("test_user_info"));
-
- elasticsearchRestTemplate.save(testUser, IndexCoordinates.of("test_user_info_dd"));
-
- return "ok";
- }
-
-
- /**
- * 查询
- *
- * @return
- */
- @GetMapping("/search")
- public Object search() {
- BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
- NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder();
- builder.withQuery(queryBuilder);
- NativeSearchQuery build = builder.build();
-
- SearchHits<TestUser> test_user = elasticsearchRestTemplate.search(build, TestUser.class);
-
- //indexName动态指定
- SearchHits<TestUser> test_user_info = elasticsearchRestTemplate.search(build, TestUser.class, IndexCoordinates.of("test_user_info"));
-
- HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
- objectObjectHashMap.put("test_user", test_user.getSearchHits());
- objectObjectHashMap.put("test_user_info", test_user_info.getSearchHits());
- return objectObjectHashMap;
- }
-
-
- /**
- * 删除
- *
- * @return
- */
- @GetMapping("/delete")
- public Object delete() {
- //根据ID删除-indexName默认取@Document中的indexName
- elasticsearchRestTemplate.delete("1", TestUser.class);
-
- //根据ID删除-indexName动态指定
- elasticsearchRestTemplate.delete("1", IndexCoordinates.of("test_user_info"));
-
- //自定义条件、自定义索引
- // BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
- // queryBuilder.filter(QueryBuilders.matchQuery("name", "张三"));
- // NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder();
- // builder.withQuery(queryBuilder);
- // NativeSearchQuery build = builder.build();
- // elasticsearchRestTemplate.delete(build, TestUser.class, IndexCoordinates.of("test_user_info"));
-
- return "ok";
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。