springboot集成es 插入和查询的简单使用

news2025/1/19 3:00:21

第一步:引入依赖

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

第二步:配置yml文件,在spring下面加上这个

  elasticsearch:
    rest:
      # ip是服务器ip地址
      uris: http://127.0.0.1:9200

然后启动项目,看到出现这个就是成功了

第三步: 创建一个常量类,用于存储我们一会儿要用到的名称

public class OrderEs {
    public static final String INDEX_NAME = "order_index";

    public static final String ID = "id";

    public static final String ORDER_NO = "order_no";

    public static final String ORDER_BUYER = "order_buyer";

    public static final String ORDER_PHONE = "order_phone";

    public static final String REAL_PAY = "real_pay";

    public static final String ACCOUNT = "account";
}

第四步:创建Es实体类,注意要加上@Document注解

@Document(indexName = OrderEs.INDEX_NAME)
@Data
public class OrderEsPO {

    @Id
    @Field(type = FieldType.Keyword,name = OrderEs.ID)
    private String id;

    @Field(type = FieldType.Keyword,name = OrderEs.ORDER_NO)
    private String orderNo;

    @Field(type = FieldType.Keyword,name = OrderEs.ORDER_BUYER)
    private String orderBuyer;

    @Field(type = FieldType.Keyword,name = OrderEs.ORDER_PHONE)
    private String orderPhone;

    @Field(type = FieldType.Keyword,name = OrderEs.REAL_PAY)
    private String realPay;

    @Field(type = FieldType.Keyword,name = OrderEs.ACCOUNT)
    private String account;

}

第五步:写测试接口,这里展示了插入和查询两个方法

@RestController
@RequestMapping("/order")
@CrossOrigin
public class OrderController 

    @Resource
    private ElasticsearchRestTemplate elasticsearchRestTemplate;

    /**
     * es插入
     *
     * @return {@link String}
     */

    @GetMapping("/esinsert")
    @Transactional
    public String esInsert(){
        OrderEsPO orderEsPO = new OrderEsPO();
        orderEsPO.setOrderNo("1234455");
        orderEsPO.setOrderBuyer("张三");
        orderEsPO.setOrderPhone("13191892075");
        orderEsPO.setRealPay("100000");
        orderEsPO.setAccount("1008611");
        elasticsearchRestTemplate.save(orderEsPO);
        return "success";
    }

    /**
     * es搜索
     *
     * @param orderEsPO 订单es参数
     * @return {@link String}
     */
    @GetMapping("/essearch")
    @Transactional
    public String esSearch(OrderEsPO orderEsPO){
        /**构造查询对象**/
        BoolQueryBuilder booleanQueryBuilder = QueryBuilders.boolQuery();
        /**编写查询条件**/
        booleanQueryBuilder.should(QueryBuilders.termQuery(OrderEs.ORDER_NO,orderEsPO.getOrderNo()));
        /**构造query对象**/
        NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(booleanQueryBuilder);
        /**搜索**/
        SearchHits<OrderEsPO> search = elasticsearchRestTemplate.search(nativeSearchQuery, OrderEsPO.class, IndexCoordinates.of(OrderEs.INDEX_NAME));
        List<OrderEsPO> collect = search.getSearchHits().stream().map(SearchHit::getContent).collect(Collectors.toList());
        return collect.toString();
    }
}

然后我们启动项目,先调用插入接口,由于这个索引一开始是不存在的,第一次调用后会默认创建索引,然后打开我们的可视化界面,就能看到这里的索引

 再调用查询,就能看到如下信息了

 说明两个接口都能被调用成功,es的简单使用就完成了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/943810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 最常用命令:能解决 95% 以上的问题

来源&#xff1a;blog.csdn.net/qq_43647359 /article/details/104792569 操作系统概述 Linux 操作系统安装 Linux 文件系统 Linux 命令操作 Linux 权限管理 用户和用户组 用户操作命令 权限操作 Linux 进程管理 Linux 其他常用命令大全 Linux 系统软件安装 常用软件…

***一种改版后检查硬件PCB生产资料的方法***,简单实用,且不容易出错

一、前言 硬件电路设计改版是常有的事,不管小的实物,还是需求变更经常会遇到要增加或者减少器件,修改走线这些。在第一版已经做了生产资料投板的情况下,可以和第一板对比一下就知道改了哪些地方,怎么才能快速的定位出来改动点并检查是否更改呢。 有的人是通过PCB文件来检…

老Python程序员职业生涯感悟—写给正在迷茫的你

我来讲几个极其重要&#xff0c;但是大多数Python小白都在一直犯的思维错误吧&#xff01;如果你能早点了解清楚这些&#xff0c;会改变你的一生的。所以这一期专门总结了大家问的最多的&#xff0c;关于学习Python相关的问题来给大家聊。希望能带给大家不一样的参考。或者能提…

Java底层起步

Java底层起步 Java介绍 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQ6tQLFm-1693272724323)(./Java介绍.png)] 什么是面向对象&#xff1f; 例如&#xff1a;小戴正在做饭时&#xff0c;发现没酱油了&#xff0c;对着外面的朋友小张说&#…

使用亥姆霍兹线圈的注意事项

亥姆霍兹线圈由一对完全相同的圆形导体线圈组成。采用直角坐标系&#xff0c;两个半径为R的圆形线圈的中心轴与z轴同轴。两个圆形线圈的z坐标分别为和。每个导体线圈都有相同的电流I。 设置可以减少两个线圈中心O(即原点)的磁场不均匀性。这种动作促使&#xff0c;也意味着非零…

ssm+vue校园活动管理平台源码和论文

ssmvue校园活动管理平台源码和论文090 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 使用旧方法对校园活动信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在校园活动信…

使用Python进行可视化呈现

热搜榜是一个反映社会热点话题的实时排行榜。通过监控、分析和可视化 热搜数据&#xff0c;我们可以了解当前的热点事件、舆论走向以及用户关注度。本文将介绍如何使用Python进行 热搜排名监控、分析与可视化呈现。 一、环境准备 首先&#xff0c;确保您已经安装了Python环境。…

Vue3 Element-plus Upload 上传图片

技术栈&#xff1a;Vue3 Ts Element-plus 官网地址&#xff1a;Upload 上传 | Element Plus 一、背景&#xff1a; 表单上传图片功能 二、效果&#xff1a; 三、流程&#xff1a; ①点击上传图片按钮&#xff0c;系统弹出文件选择对话框&#xff0c;选择图片并确认 ②调…

vscode编译C语言

首先把c文件拖到vscode中 然后安装这个插件 安装完毕后会提示你代码中的语法错误&#xff0c;并在编译器的右上角出现编译按钮 我当前的问题是没有GCC&#xff0c;我们点一下编译的按钮也可以看出来这个问题 在 django笔记中 附录二 windows上直接安装uwsgi(不可行) 附录二 win…

c刷题(三)

程序运行结果 int a, b, c; a 5; c a; b c, c, a, a; b a c; printf("a %d b %d c %d\n", a, b, c); line3&#xff1a;c6&#xff0c;a6&#xff1b; line4&#xff1a;(逗号表达式&#xff0c;从左向右计算&#xff0c;结果为最后一个表达式)c8&#xff…

前端:html实现页面切换、顶部标签栏,类似于浏览器的顶部标签栏(完整版)

效果 代码 <!DOCTYPE html> <html><head><style>/* 左侧超链接列表 */.link {display: block;padding: 8px;background-color: #f2f2f2;cursor: pointer;}/* 顶部标签栏 */#tabsContainer {width:98%;display: flex;align-items: center;overflow-x: …

深度学习——感受野

在CNN中&#xff0c;决定某一层输出结果中一个元素所对应的输入层的区域大小被称作感受野&#xff08;receptive field&#xff09;&#xff0c;指的是神经网络中一个神经元可以感知到的区域&#xff0c;在CNN中&#xff0c;即 上某个元素的计算受输入图像上影响的区域&#xf…

Android DataBinding 基础入门

DataBinding 是谷歌官方发布的一个框架&#xff0c;顾名思义即为数据绑定&#xff0c;是 MVVM 模式在 Android 上的一种实现&#xff0c;用于降低布局和逻辑的耦合性&#xff0c;使代码逻辑更加清晰。MVVM 相对于 MVP&#xff0c;其实就是将 Presenter 层替换成了 ViewModel 层…

github加速的方法

一、UU加速器 1、下载软件 网易UU加速器——不止快&#xff0c;还很稳 (163.com) 2、搜索学术两个字&#xff0c;点击启动游戏 二、Steam加速器 1、下载软件 Watt Toolkit - 瓦特工具箱(Steam官网) (steampp.net) 2、选择按钮之后&#xff0c;点击一键启动

聚焦磷酸铁锂产线革新,宏工科技一站式解决方案

兼顾了低成本与安全性两大属性&#xff0c;磷酸铁锂市场在全球范围内持续升温&#xff0c;并有望保持较高的景气度。巨大的需求空间之下&#xff0c;行业对于锂电装备企业的自动化与智能化水平、整线交付能力、产品效率与稳定性等均提出了新的要求。 以宏工科技股份有限公司&a…

【IOTE】物联网射频模组和芯片级方案提供商——深圳信驰达科技将精彩亮相IOTE物联网展

►►►强势来袭 Strong Attack 主物联场&#xff0c;相约深圳&#xff1b;2023&#xff0c;共论商机&#xff01;IOTE2023第二十届国际物联网展深圳站将于2023年9月20-22日在深圳国际会展中心(宝安新馆)开展&#xff01;汇聚全球超800家参展企业&#xff0c;呈现更多数字化纷呈…

恒运资本:两市迎普涨,创业板指涨超3%,汽车配件等板块走强

29日早盘&#xff0c;A股两市低开高走&#xff0c;沪指涨幅超1%&#xff0c;创业板指涨超3%。截至午间收盘&#xff0c;沪指涨1.39%报3141.82点&#xff0c;深成指涨2.41%&#xff0c;创业板指涨3.47%%&#xff0c;两市算计成交6265亿元。北向资金净流入超38亿元。盘面上&#…

基于面向对象的空间自相关指数,即插即用!Moran‘s I,局部莫兰指数,Geary‘s C指数,附完整可行使用案例

Geary’s C Geary’s C&#xff08;也称为Geary’s coefficient&#xff09;是一种用于衡量空间自相关性的统计指标&#xff0c;它可以用来评估地理数据中的空间聚集或离散程度。Geary’s指数的计算公式如下&#xff1a; G ( n − 1 ) ∗ ( Σ Σ w i j ∗ ( x i − x j ) 2…

windows下Node版本的切换方式

为了避免应用构建出错&#xff0c;我们在本地开发环境的 Node 版本与在 CI/CD 流程中指定的 Node 版本需保持一致。在这种需要频繁切换 Node 版本的情况下&#xff0c;我们不可能手动卸载又安装不同的版本&#xff0c;这时我们可以借助 NVM 工具来帮助我们快速地切换 Node 版本…

轻量、便捷、高效—经纬恒润AETP助力车载以太网测试

随着自动驾驶技术和智能座舱的不断发展&#xff0c;高宽带、高速率的数据通信对主干网提出了稳定、高效的传输要求&#xff0c;CAN(FD)、LIN已无法充分满足汽车的通信需求。车载以太网作为一种快速且扩展性好的网络技术&#xff0c;已经逐步成为了汽车主干网的首选。 此外&…