Springboot2.1.1使用rest-high-level-client整合Elasticsearch6.4.3
2021-04-24 19:29
标签: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依赖: 二、配置文件"application.properties": 此处比较简单,配置好自己服务器的IP和端口即可 三、基于业务层的简单实用(样例): 在业务层添加如下代码,可直接使用测试,更复杂查询则不过多介绍 Springboot2.1.1使用rest-high-level-client整合Elasticsearch6.4.3 标签:depend 第一个 font 文章 end 复杂 没有 说明 添加 原文地址:https://www.cnblogs.com/Arthemis-z/p/13261768.htmldependency>
groupId>org.elasticsearch.clientgroupId>
artifactId>elasticsearch-rest-high-level-clientartifactId>
version>6.4.3version>
dependency>
spring.elasticsearch.rest.uris=http://xxx.xxx.xxx.xxx:9200
@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
文章链接:http://soscw.com/essay/79083.html