栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

十、SpringBoot与检索(Elasticsearch)

十、SpringBoot与检索(Elasticsearch)

检索组件elasticsearch

一、ElasticSearch简介

1.简介2.docker安装 二、elasticsearch操作三、SpringBoot整合Elasticsearch

1.引入maven依赖2. 自动配置3. yml配置文件4.RestHighLevelClient操作elasticsearch5. ElasticsearchRestTemplate 操作elasticsearch6.ElasticsearchRepository操作elasticsearch

一、ElasticSearch简介 1.简介

Elasticsearch是一个分布式搜索服务,提供restful API 底层基于Lucene,采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,github等大型站点也是采用了Elasticsearch作为其搜索服务;

2.docker安装
    搜索镜像
    docker search elasticsearch
    
    拉取镜像
    docker pull elasticsearch:7.17.1
    
    查看镜像
    docker images
    
    启动镜像
     docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 --name ES01 515ab4fba870
    
    验证启动成功
    访问:http://192.168.1.XXX:9200,返回以下JSON数据:
    {
      "name" : "5ab04951e8e0",
      "cluster_name" : "docker-cluster",
      "cluster_uuid" : "v_6fQnhsQ8i1S0faXaTo2A",
      "version" : {
        "number" : "7.17.1",
        "build_flavor" : "default",
        "build_type" : "docker",
        "build_hash" : "e5acb99f822233d62d6444ce45a4543dc1c8059a",
        "build_date" : "2022-02-23T22:20:54.153567231Z",
        "build_snapshot" : false,
        "lucene_version" : "8.11.1",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    
二、elasticsearch操作

具体操作参考:
elasticsearch官方文档【中文】
或者关注后续的elasticsearch学习文档

三、SpringBoot整合Elasticsearch 1.引入maven依赖
 
     org.springframework.boot
     spring-boot-starter-data-elasticsearch
 
2. 自动配置
    SpringBoot默认支持两种技术和ES进行交互;
    在SpringBoot1.X版本默认使用spring-data-elasticsearch和jest两种客户端和elasticsearch进行交互,但是随着jest在2018年停止维护,以及elasticsearch官方大力推荐RestHighLevel API对elasticsearch进行操作,spring官方在2.X版本移除了jest并加入了RestHighLevelClient;org.springframework.boot.autoconfigure在自动配置包下的data.elasticsearch和elasticsearch下分别对应两种ES加护技术;org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration中引入了ElasticsearchRestTemplate和ElasticsearchRepositoryorg.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration引入RestHighLevelClient
3. yml配置文件
spring:
  elasticsearch:
    uris: http://192.168.1.132:9200
4.RestHighLevelClient操作elasticsearch
    @Autowired
    RestHighLevelClient restHighLevelClient;
    
    @Test
    void contextLoads() throws IOException {

        final GetRequest getRequest = new GetRequest();
        getRequest.id("1");
        getRequest.index("book");
        final GetResponse documentFields = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);
        final String sourceAsString = documentFields.getSourceAsString();
        System.out.println("sourceAsString = " + sourceAsString);
    }
5. ElasticsearchRestTemplate 操作elasticsearch
    @Autowired
    ElasticsearchRestTemplate template;
    
    @Test
    void contextLoads3() throws IOException {
        final Book book = template.get("1", Book.class);
        System.out.println("book = " + book);
    }
6.ElasticsearchRepository操作elasticsearch
    编写某个bean的关联ElasticsearchRepository
    自定义规则参考spring-data官方文档
public interface BookRepository extends ElasticsearchRepository {

    List findByAuthorLike(String author);
}
    操作方法
    @Autowired
    BookRepository repository;
        @Test
    void contextLoads() {
        

        for (Book book1 : repository.findAll()) {
            System.out.println("book1 = " + book1);
        }
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号