springboot整合elasticsearch:7.6.2版本

这篇具有很好参考价值的文章主要介绍了springboot整合elasticsearch:7.6.2版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

温馨提示:

        es,kibana,ik的安装可看之前的文章

       docker安装elasticsearch,kibana,ik分词器_Give_time_to_Bug的博客-CSDN博客

再次强调:

        elasticsearch版本与springboot版本一定要对应,否则bug极多

        我安装的elasticsearch是7.6.2版本,对应使用的springboot是2.3.2.RELEASE

接下来介绍两种接入方式:

一.使用high-level-client的方式

1.pom依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!-- 这里我的springboot的版本使用是2.3.2 -->
        <version>2.3.2.RELEASE</version>
    </parent>


    <!--es客户端-->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>7.6.2</version>
    </dependency>

2.配置文件application.properties

es.ip=127.0.0.1
es.port=9200

3.客户端配置文件

@ConfigurationProperties("es")
@Data
@Component
public class ESProperties {

    private String ip;
    private int port;
}
@Configuration
public class ESConfig {

    @Autowired
    private ESProperties properties;

    @Bean
    public RestHighLevelClient esRestClient(){
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        //在这里配置你的elasticsearch的情况
                        new HttpHost(properties.getIp(), properties.getPort(), "http")
                )
        );
        return client;
    }

}

4.service接口调用

    @Autowired
    private RestHighLevelClient client;

    @Override
    public List<Shop> query(String keyword) throws IOException {
        SearchRequest request = new SearchRequest("shop");
        SearchSourceBuilder builder = new SearchSourceBuilder();

        BoolQueryBuilder query = QueryBuilders.boolQuery();
        query.should(QueryBuilders.matchQuery("name", keyword));
        query.should(QueryBuilders.matchQuery("location", keyword));

        builder.query(query)
                .from(0)
                .size(5);
        request.source(builder);

        SearchResponse search = client.search(request, RequestOptions.DEFAULT);
        SearchHit[] hits = search.getHits().getHits();

        return Arrays.stream(hits).map(hit -> {
            String str = hit.getSourceAsString();
            return JSONObject.parseObject(str, Shop.class);
        }).collect(Collectors.toList());
    }

二.使用spring-boot-data的方式

1.依赖

         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.elasticsearch.client</groupId>
                    <artifactId>elasticsearch-rest-high-level-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        注:因为我pom 中有high-level,所以我手动剔除了一下

2.application.properties配置

spring.elasticsearch.rest.uris=http://127.0.0.1:9200

3.实体类

@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "shop",shards = 1,replicas = 1)
public class Shop implements Serializable {

    //@Id
    @Field(type = FieldType.Integer,name = "id")
    @ApiModelProperty(value = "主键")
    private Integer id;

    @ApiModelProperty(value = "名称")
    @Field(type = FieldType.Text,name = "name", analyzer = "ik_max_word", searchAnalyzer = "ik_smart")
    private String name;

    @ApiModelProperty(value = "地址")
    @Field(type = FieldType.Text,name = "location", analyzer = "ik_max_word", searchAnalyzer = "ik_smart")
    private String location;

    @ApiModelProperty(value = "平均消费")
    @Field(type = FieldType.Integer,name = "price_per_man")
    private Integer pricePerMan;

}

4.dao层接口

@Repository
public interface ShopDao extends ElasticsearchRepository<Shop, Long> {

    List<Shop> findByNameOrLocation(String name,String location);

}

        注:这个方法是自定义方法,es会自动解析为查询name和location,因为查询内容为两个属性,所以传参需要是两个

5.service接口调用文章来源地址https://www.toymoban.com/news/detail-414827.html

    @Autowired
    private ShopDao shopDao;

    
    @Override
    public List<Shop> test(String keyword) {
        return shopDao.findByNameOrLocation(keyword,keyword);
    }

到了这里,关于springboot整合elasticsearch:7.6.2版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ElasticSearch系列-05】SpringBoot整合elasticSearch

    ElasticSearch系列整体栏目 内容 链接地址 【一】ElasticSearch下载和安装 https://zhenghuisheng.blog.csdn.net/article/details/129260827 【二】ElasticSearch概念和基本操作 https://blog.csdn.net/zhenghuishengq/article/details/134121631 【三】ElasticSearch的高级查询Query DSL https://blog.csdn.net/zhenghuishengq/article/details/1

    2024年02月06日
    浏览(42)
  • ElasticSearch8 - SpringBoot整合ElasticSearch

    springboot 整合 ES 有两种方案,ES 官方提供的 Elasticsearch Java API Client 和 spring 提供的 [Spring Data Elasticsearch](Spring Data Elasticsearch) 两种方案各有优劣 Spring:高度封装,用着舒服。缺点是更新不及时,有可能无法使用 ES 的新 API ES 官方:更新及时,灵活,缺点是太灵活了,基本是一

    2024年03月25日
    浏览(97)
  • ElasticSearch(九)【SpringBoot整合】

    上一篇文章 《ElasticSearch - 过滤查询》 9.1 基本环境配置 创建一个springboot工程 springboot-elasticsearch 在 pom.xml 导入依赖 【 注意 】使用的springboot需要根当前ES版本兼容 配置 application.yml 文件 配置客户端 创建config包,添加配置类 RestClientConfiguration.class 配置完之后,该配置类不仅

    2024年02月14日
    浏览(35)
  • 三.SpringBoot整合Elasticsearch

    我们整合es直接给es发请求就可以了,但是现在有很多方式去调用es的接口,那都有那些呢? 访问es端口 访问方式 使用工具 缺点 9300 TCP transport-api.jar 不适配es版本,es 8.0之后弃用。 9200 HTTP JestClient 非官方,对应es版本更新慢。 9200 HTTP RestTemplate 模拟发送http请求,但是很多请求

    2024年02月13日
    浏览(36)
  • SpringBoot 整合 ElasticSearch

    😍开始前给大家推荐一款很火的刷题、面试求职网站💕 https://www.nowcoder.com/link/pc_csdncpt_xiaoying_java 索引Index 一组相似文档的集合 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个商品数据的索引,一个订单数据的索引,还有一个用户数据的索引。一

    2023年04月08日
    浏览(33)
  • 【已解决】SpringBoot整合security账号密码正确却提示错误

    SpringSecurity的密码校验并不是直接使用原文进行比较,而是使用加密算法将密码进行加密(更准确地说应该进行Hash处理,此过程是不可逆的,无法解密),最后将用户提供的密码以同样的方式加密后与密文进行比较。对于我们来说,用户提供的密码属于隐私信息,直接明文存

    2024年02月11日
    浏览(49)
  • Elasticsearch是什么,如何学习Elasticsearch,整合SpringBoot

    目录 一、是什么Elasticsearch 二、Elasticsearch,整合SpringBoot 三、Elasticsearch的优势和应用场景   Elasticsearch是一个开源的搜索引擎,它采用Java语言编写,使用Lucene作为核心搜索引擎,并在其基础上构建了分布式的、可扩展的、实时的数据存储和分析引擎 。Elasticsearch最初由Shay B

    2024年02月16日
    浏览(40)
  • Elasticsearch安装、使用,Springboot整合Elasticsearch详细教程

    Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够实现近乎实时的搜索。 Elasticsearch官网 https://www.elastic.co/cn/ 这篇文章主要简单介绍一下Elasticsearch,Elasticsearch的java API博主也在学习中,文章会持续更新~ 目录 第一步:下载Elasticsearch 下载7.6.2版本 下载其他版本

    2024年02月04日
    浏览(35)
  • Elasticsearch 整合springboot-Elasticsearch文章二

    https://www.elastic.co/cn/ https://docs.spring.io/spring-data/elasticsearch/docs/4.4.10/reference/html/ 我们选用的是elasticsearch 7.17.9版本,对应的,我们需要升级springboot版本,对应的中间件都需要升级 Springboot: 2.7.10 spring-data-elasticsearch: 4.4.10 spring-boot-starter-data-elasticsearch: 2.7.10 https://github.com/OrderDo

    2024年02月15日
    浏览(45)
  • springboot整合elasticsearch使用案例

    完成搜索和分页 添加品牌、城市、星级、价格等过滤功能 搜索我附近的酒店    让指定的酒店在搜索结果中排名置顶 添加isAD字段

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包