专业的编程技术博客社区

网站首页 > 博客文章 正文

SpringBoot集成Elasticsearch(springboot集成swagger)

baijin 2024-08-26 10:20:47 博客文章 4 ℃ 0 评论

Elasticsearch 是一个的分布式搜索和分析引擎。可以通过Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 可视化界面使您能够以交互方式探索、可视化查看和分享对数据的见解,并管理和监控堆栈。

1.导入相关的依赖包,排除log4j,log4j存在一定的漏洞,如果需要日志,根据需要导入相应的依赖即可

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>log4j-api</artifactId>
            <groupId>org.apache.logging.log4j</groupId>
        </exclusion>
    </exclusions>
</dependency>

2.在配置文件中配置es的连接,自行配置开启密码进行连接

spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=xx.xx.xx.xx:9300

3.配置要进行访问的实体类的,在系统上索引的名字全部为小写,通过这个索引名字可以用来执行索引、搜索、更新和删除操作

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

@Document(indexName = "gridconnectionplatform", type = "docs", shards = 1, replicas = 0)
@AllArgsConstructor
@NoArgsConstructor
@Data
public class GridConnectionPlatform {

    @Id
    private Long id;
    /**
     * 可以进行相关的分析
     * 可以根据需要配置相应的分词
     */
    @Field(type = FieldType.Text, analyzer = "ik_smart")
    private String title;

    /**
     * 
     */
    @Field(type = FieldType.Text)
    private String custom;
}

4.配置相应的持久层进行访问

import com.south.wires.entity.es.GridConnectionPlatform;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface GridConnectionPlatformRepository extends ElasticsearchRepository<GridConnectionPlatform, Long> {
}

5.控制层的操作查询

@RequestMapping("xxxx")
public JsonResult queryContent(String title) {
 NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
 // 添加基本分词查询
 queryBuilder.withQuery(QueryBuilders.matchQuery("title", title));
 Page<GridConnectionPlatform> page = GridConnectionPlatformRepository.search(queryBuilder.build());
 Iterator iterator = page.iterator();
  //获取匹配返回前10条数据
 while (iterator.hasNext()) {
    				//此时获取到查询的内容
            GridConnectionPlatform gridConnectionPlatform=(GridConnectionPlatform) iterator.next();
  }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表