码迷,mamicode.com
首页 > 编程语言 > 详细

Springboot2.1.1使用rest-high-level-client整合Elasticsearch6.4.3

时间:2020-07-07 18:05:02      阅读:73      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!