springboot整合es

本文详细介绍了如何在Spring Boot应用中整合Elasticsearch,从环境配置到使用,包括依赖设置、配置文件、建库建表、数据操作(添加、修改、删除)以及查询方法(通过索引、DSL搜索)。特别强调了DSL查询的强大功能,并提供了各种查询类型的示例代码,如match_all、分页、match、multi_match、bool和filter查询,以及highlight高亮显示的使用方法。
摘要由CSDN通过智能技术生成

ES客户端

ES提供多种不同的客户端:

1、TransportClient

​ ES提供的传统客户端,官方计划8.0版本删除此客户端。

2、RestClient

​ RestClient是官方推荐使用的,它包括两种:REST Low Level Client和 REST High Level Client。ES在6.0之后提供REST High Level Client, 两种客户端官方更推荐使用 REST High Level Client,不过当前它还处于完善中,有些功能还没有。

环境

依赖

搭建好springboot工程后引入依赖

        <!--es版本号-->
        <properties>
            <elasticsearch.version>6.2.3</elasticsearch.version>
        </properties>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>${
   elasticsearch.version}</version>
        </dependency>

配置文件

搜索引擎虽然好用,但如果我们不告诉它去哪里使用,也是白搭

spring:
  elasticsearch:
    rest:
      uris:
        - http://192.168.204.132:9200

使用

建库建表

public class IndexWriterTest {
   
    
    //获取es客户端
    @Autowired
    private RestHighLevelClient restHighLevelClient;
    
    @Test
    public void testCreateIndex() throws IOException {
   
        
        //获取操作索引库的对象
        IndicesClient indicesClient = restHighLevelClient.indices();
        
        //创建索引库请求对象
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("java2022");
        
        //建库使用source方法,并且数据格式为Json
        createIndexRequest.source("{\n" +
                "  \"settings\":{\n" +
                "       \"number_of_shards\" : 2,\n" +
                "       \"number_of_replicas\" : 0\n" +
                "  }\n" +
                "}", XContentType.JSON);
        
        //建表使用mapping创建映射,数据格式依然为Json
        createIndexRequest.mapping("course","{\n" +
                "  \"_source\": {\n" +
                "    \"excludes\":[\"description\"]\n" +
                "  }, \n" +
                " \t\"properties\": {\n" +
                "      \"name\": {\n" +
                "          \"type\": \"text\",\n" +
                "          \"analyzer\":\"ik_max_word\",\n" +
                "          \"search_analyzer\":\"ik_smart\"\n" +
                "      },\n" +
                "      \"description\": {\n" +
                "          \"type\": \"text\",\n" +
                "          \"analyzer\":\"ik_max_word\",\n" +
                "          \"search_analyzer\":\"ik_smart\"\n" +
                "       },\n" +
                "       \"studymodel\": {\n" +
                "          \"type\": \"keyword\"\n" +
                "       },\n" +
                "       \"price\": {\n" +
                "          \"type\": \"float\"\n" +
                "       },\n" +
                "       \"pic\":{\n" +
                "\t\t   \"type\":\"text\",\n" +
                "\t\t   \"index\":false\n" +
                "\t    }\n" +
                "  }\n" +
                "}", XContentType.JSON);
        indicesClient.create(createIndexRequest);
    }
}

添加数据

单条添加

    @Test
    public void testAddDoc() throws IOException {
   
        //创建index请求,设置操作的库,表与索引
        IndexRequest indexRequest = new IndexRequest("java2022","course","1");
        //设置数据信息,数据格式为Json
        indexRequest
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是SpringBoot整合Elasticsearch的步骤: 1. 添加Elasticsearch的依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> ``` 2. 配置Elasticsearch连接 在application.yml或application.properties中添加以下配置: ``` spring: data: elasticsearch: cluster-name: elasticsearch # Elasticsearch集群名称 cluster-nodes: 127.0.0.1:9300 # Elasticsearch连接地址 ``` 3. 创建Elasticsearch实体类 创建一个Java类,使用@Document注解标记为Elasticsearch文档类型,并使用其他注解指定属性的映射关系,如下所示: ``` @Document(indexName = "my_index", type = "my_type") public class MyDocument { @Id private String id; private String title; private String content; // ... 省略getter和setter方法 } ``` 4. 创建Elasticsearch操作接口 创建一个接口,继承ElasticsearchRepository接口,并指定泛型为步骤3中创建的实体类,如下所示: ``` public interface MyDocumentRepository extends ElasticsearchRepository<MyDocument, String> { } ``` 5. 使用Elasticsearch操作数据 在需要使用Elasticsearch的地方注入MyDocumentRepository,即可使用其提供的方法进行数据的CRUD操作,如下所示: ``` @Autowired private MyDocumentRepository repository; public void save(MyDocument document) { repository.save(document); } public MyDocument findById(String id) { return repository.findById(id).orElse(null); } public void deleteById(String id) { repository.deleteById(id); } ``` 以上就是SpringBoot整合Elasticsearch的基本步骤,希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值