标签:depend 第一个 font 文章 end 复杂 没有 说明 添加
一、前提:
经过各种踩坑后,现直接说明该文章中整合时需要注意的事项:
A.创建Springboot工程时,选择Springboot版本为2.1.1,默认会使用新版本,而新版本对应自带的elasticsearch包可能已经是7.x已上
B.如果创建Springboot工程时,发下没有2.1.1版本,也可以后续创建完工程,再次修改pom.xml,得到需要的版本。
C.当然,可以通过此篇文章举一反三,使用Springboot高级版本,只要elasticsearch版本对应上即可
D.版本选择可以根据自身服务器上的的ES版本决定,不要跨大版本
D.引入rest-high-level-client依赖:
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>6.4.3</version> </dependency>
二、配置文件"application.properties":
spring.elasticsearch.rest.uris=http://xxx.xxx.xxx.xxx:9200
此处比较简单,配置好自己服务器的IP和端口即可
三、基于业务层的简单实用(样例):
在业务层添加如下代码,可直接使用测试,更复杂查询则不过多介绍
@Service public class ElasticSearchService { private Logger logger = LoggerFactory.getLogger(ElasticSearchService.class); // 在配置文件中已经配置,此处直接可以使用 @Resource private RestHighLevelClient client; public boolean isExist(String reference) throws IOException { // 1、查询条件 MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("DREREFERENCE", reference); // 2、封装boolBuilder等一系列内容 BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery(); boolBuilder.must(matchQueryBuilder); // 封装sourceBuilder SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); // 设置查询,可以是任何类型的QueryBuilder sourceBuilder.query(boolBuilder); // 设置确定结果要从哪个索引开始搜索的from选项,默认为0 sourceBuilder.from(0); // 设置确定搜素命中返回数的size选项,默认为10 sourceBuilder.size(1); // 设置一个可选的超时,控制允许搜索的时间 sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); // 第一个是获取字段,第二个是过滤的字段,默认获取全部 sourceBuilder.fetchSource(new String[] {"DREREFERENCE","DRETITLE"}, new String[] {}); // 索引 SearchRequest searchRequest = new SearchRequest("full-sight-v1"); // 3、封装searchRequest searchRequest.source(sourceBuilder); // 4、查询 SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); // SearchHits提供有关所有匹配的全局信息,例如总命中数或最高分数 SearchHits hits = response.getHits(); SearchHit[] searchHits = hits.getHits(); for (SearchHit hit : searchHits) { logger.info("search -> {}",hit.getSourceAsString()); } return searchHits.length > 0; } }
rest-high-level-client
Springboot2.1.1使用rest-high-level-client整合Elasticsearch6.4.3
标签:depend 第一个 font 文章 end 复杂 没有 说明 添加
原文地址:https://www.cnblogs.com/Arthemis-z/p/13261768.html