首页 > 其他分享 >【Elasticsearch】在spring环境中 进行es的数据读取

【Elasticsearch】在spring环境中 进行es的数据读取

时间:2024-04-24 14:34:28浏览次数:29  
标签:String spring springframework Elasticsearch Spring org public es

在Spring环境中进行Elasticsearch(ES)的数据读取,通常会利用Spring Data Elasticsearch项目提供的功能。Spring Data Elasticsearch提供了高度抽象的Repository接口,允许你以面向对象的方式操作Elasticsearch,而无需直接编写底层的HTTP请求或JSON解析代码。下面是一个简单的示例,演示如何配置和使用Spring Data Elasticsearch来读取数据。

1. 添加依赖

首先,在你的pom.xml文件中添加Spring Data Elasticsearch的依赖。确保版本与你的Spring Boot版本兼容。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

2. 配置Elasticsearch

application.ymlapplication.properties中配置Elasticsearch的连接信息:

spring:
  data:
    elasticsearch:
      client:
        reactive:
          endpoints: localhost:9200 # Elasticsearch地址

或者 properties 文件格式:

spring.data.elasticsearch.client.reactive.endpoints=localhost:9200

3. 定义实体类

创建一个Java类来表示Elasticsearch中的文档,并使用Spring Data Elasticsearch的注解来映射字段和索引。

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

@Document(indexName = "your_index_name")
public class YourEntity {
    @Id
    private String id;
    private String title;
    private String content;

    // Getter and Setter methods
}

4. 创建Repository接口

继承ElasticsearchRepository来创建一个接口,用于执行CRUD操作。

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

public interface YourEntityRepository extends ElasticsearchRepository<YourEntity, String> {
    // 可以定义自定义查询方法,如按标题查询
    List<YourEntity> findByTitle(String title);
}

5. 在Service或Controller中使用Repository读取数据

最后,在你的服务类或控制器中注入刚刚创建的Repository接口,并使用它来读取数据。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class YourEntityService {
    @Autowired
    private YourEntityRepository repository;

    public List<YourEntity> findAll() {
        return repository.findAll(); // 查询所有文档
    }

    public YourEntity findById(String id) {
        return repository.findById(id).orElse(null); // 根据ID查询
    }

    public List<YourEntity> findByTitle(String title) {
        return repository.findByTitle(title); // 自定义查询方法
    }
}

这样,你就可以在Spring环境中优雅地进行Elasticsearch数据的读取操作了。记得根据实际情况调整索引名、实体类属性等信息。

标签:String,spring,springframework,Elasticsearch,Spring,org,public,es
From: https://www.cnblogs.com/cuipengchong/p/18155234

相关文章

  • 客户端使用 FeignClient 调用服务端服务时,报错:Request method ‘POST‘ not supporte
    客户端使用FeignClient调用服务端服务时,报错:Requestmethod‘POST‘notsupported修改错误前调用方式:FeignClient 接口服务@FeignClient(contextId="remotePayFormService",value="payment-service-system")publicinterfaceRemotePayFormService{@GetMap......
  • 1名工程师轻松管理20个工作流,创业企业用Serverless 让数据处理流程提效
    北京语势科技有限公司成立于2023年6月,语势科技定位为“智能投资时代的主题入口”,在资管行业从以机构为核心转向以用户为核心的变革时代,通过打造主题投资引擎,赋能普惠投资一体化,打造以投资者和资管机构为主题和核心、自然语言交互形式为入口的“新桥梁”。语势科技日均处理万条金......
  • SpringMVC学习总结 + 【手写SpringMVC底层机制核心】
    SpringMVC笔记SpringMVC介绍基本介绍SpringMVC是WEB层框架,接管了Web层组件,支持MVC的开发模式/开发架构SpringMVC通过注解,让POJO成为控制器,不需要继承类或者实现接口SpringMVC采用低耦合的组件设计方式,具有更好扩展和灵活性.支持REST格式的URL请求.SpringMV......
  • Excel为批注设置图片背景 出现Bad Request - Request Too long
    Excel为批注设置图片背景  打开EXCEL点击文件 点选项 点击信任中心 点击信任中心设置 点击隐私选项 点击隐私设置 取消全部勾选  在填充效果中在选图片出现 点脱机工作  就可以正常先图片了......
  • postgresql中两张表的聚合函数合并到一列或一行,做除法,并保留两位小数
    --两张表的无关数据合并到一张表SELECTA.name,B.nameFROM(selecto.name,row_number()over(orderbyname)fromtb_orgaso)A FULLJOIN (selectr.name,row_number()over(orderbyr.name)fromtb_regionasr)BONA.row_number=B.row_number;这里是利用......
  • The 2022 ICPC Asia Xian Regional Contest / ICPC 西安 2022 (ABDHJKL)
    本文搬运自本人的知乎文章。https://zhuanlan.zhihu.com/p/588162564好久没有在补题之后写题解的习惯了。但是最近感觉有些题目的思路即使在题目通过后仍然难以理清,因此觉得需要写些东西帮助自己整理思路,另外也方便以后翻看积累到的技巧。J.StrangeSum题目链接Problem-J......
  • 2022 China Collegiate Programming Contest (CCPC) Mianyang | 2022 CCPC 绵阳(MAED
    搬运自本人知乎文章。https://zhuanlan.zhihu.com/p/588646549M.Rock-Paper-ScissorsPyramid题目链接Problem-M-Codeforces题意有一个长度为\(n\)的石头剪刀布序列,每个元素是RPS(石头、布、剪刀)中的一个,我们需要用这个序列构造一个三角,三角的底层为这个序列,第\(i(......
  • Elasticsearch 所有内置分词器介绍(6)
    一.概述Tokenizer分词器接收字符流(es的text类型),将其分解为单个term(通常是单个单词),然后输出标记流。分词器除了分解,还负责记录以下内容:1)记录每个单词(term)的顺序或位置(用于”phrase短语“和单词邻近性查询)2)term原始单词的开始和结束字符偏移量(使用......
  • springboot 结合jackson数据脱敏
     在返回字段时有时需要对电话,地址等字段进行脱敏处理1.定义枚举脱敏类使用函数编程,绑定函数操作publicenumDataMaskEnum{/***名称脱敏*/USERNAME(s->s.replaceAll("(\\S)\\S(\\S*)","$1*$2")),/***手机号脱敏*/......
  • 界面控件DevExpress VCL v24.1预览 - 支持RAD Studio 12.1、图表新功能
    DevExpressVCL Controls是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。我们距离下一个主要更新(v24.1)还有几......