SpringBoot 集成 Elasticsearch

一、版本

spring-boot版本:2.3.7.RELEASE

Elasticsearch7.8.0

在这里插入图片描述

版本说明详见

二、Elasticsearch 下载和安装

Elasticsearch 下载
kibana下载
ik分词器下载

配置IK分词器

2.1 解压,在elasticsearch-7.8.0\plugins 路径下新建ik目录

在这里插入图片描述

2.2 将ik分词器解压放入ik目录

在这里插入图片描述

2.3 扩展词汇测试示例

2.3.1 ik/config 目录下新建custom.dic文件

在这里插入图片描述

2.3.2 编辑custom.dic文件,加入新词汇

注意:custom.dic文件内容的格式的编码为UTF-8格式编码,否则会导致扩展词汇失效。
在这里插入图片描述

2.3.3 打开 IKAnalyzer.cfg.xml 文件,将新建的 custom.dic 配置其中,如下图

在这里插入图片描述

2.4 编辑kibana.yml ,修改kibana配置

在这里插入图片描述

三、新建Springboot项目,整合Elasticsearch并测试

3.1 加入依赖,配置

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
spring: 
  main: 
    allow-bean-definition-overriding: true 
  elasticsearch:
    rest:
      uris: http://localhost:9200

3.2 新建实体类SkuEs


@Data
@Document(indexName = "skues" ,shards = 3,replicas = 1)
public class SkuEs {

    // 商品Id= skuId
    @Id
    private Long id;

    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String keyword;

    @Field(type = FieldType.Integer, index = false)
    private Integer skuType;

    @Field(type = FieldType.Integer, index = false)
    private Integer isNewPerson;

    @Field(type = FieldType.Long)
    private Long categoryId;

    @Field(type = FieldType.Text)
    private String categoryName;

    @Field(type = FieldType.Keyword, index = false)
    private String imgUrl;

    //  es 中能分词的字段,这个字段数据类型必须是 text!keyword 不分词!
    @Field(type = FieldType.Text)
    private String title;

    @Field(type = FieldType.Double)
    private Double price;

    @Field(type = FieldType.Integer, index = false)
    private Integer stock;

    @Field(type = FieldType.Integer, index = false)
    private Integer perLimit;

    @Field(type = FieldType.Integer, index = false)
    private Integer sale;

    @Field(type = FieldType.Long)
    private Long wareId;

    //  商品的热度!
    @Field(type = FieldType.Long)
    private Long hotScore = 0L;

    @Field(type = FieldType.Object, index = false)
    private List<String> ruleList;

}

3.2 新建接口SkuRepository

public interface SkuRepository extends ElasticsearchRepository<SkuEs,Long> {


}

3.3 测试

@Service
public class SkuServiceImpl implements SkuService {

    @Autowired
    private SkuRepository skuRepository;

    @Override
    public void upperSku(Long skuId) {
        //  3 调用方法添加ES
        SkuEs skuEs = new SkuEs();
        skuEs.setCategoryId(11111l);
        skuEs.setCategoryName("name");
        skuEs.setId(1123l);
        skuEs.setKeyword("keyword");
        skuEs.setWareId(1123l);
        skuEs.setIsNewPerson(12);
        skuEs.setImgUrl("url");
        skuEs.setTitle("SkuName");
        skuEs.setSkuType(0);
        skuEs.setPrice(123.1);
        skuEs.setStock(11);
        skuEs.setSale(21);
        skuEs.setPerLimit(123);

        skuRepository.save(skuEs);
    }
}

3.4 运行结果

打开kibana控制台:http://localhost:5601/app/kibana#/dev_tools/console
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest---环境切换(base-url)

前言 前面小编介绍了如何通过pytest的插件来实现自动化测试的环境的切换&#xff0c;当时使用的方法是通过钩子函数进行获取命令行参数值&#xff0c;然后通过提前配置好的参数进行切换测试环境地址&#xff0c;今天小编再次介绍一种方法&#xff0c;通过pytest的插件&#xff…

2023年深圳杯数学建模B题电子资源版权保护问题

2023年深圳杯数学建模 B题 电子资源版权保护问题 原题再现&#xff1a; 版权又称著作权&#xff0c;包括发表权、署名权、修改权、保护作品完整权、复制权、发行权、出租权、展览权、表演权、放映权、广播权、信息网络传播权、摄制权、改编权、翻译权、汇编权及应当由著作权人…

安全学习DAY06_抓包技术-HTTPHTTPS

抓包技术-HTTP&HTTPS HTTP&HTTPS抓包针对Web&APP&小程序&PC应用等 本节目的&#xff1a; 掌握几种抓包工具证书安装操作掌握几种HTTP&HTTPS抓包工具的使用学会Web&#xff0c;APP&#xff0c;小程序&#xff0c;PC应用等抓包了解本节课抓包是针对哪些…

【100天精通python】Day17:常见异常类型与解决,异常处理语句

目录 一 python 的常见异常类型与解决 二 常用的异常处理语句 1 try...except语句 2 try...except...else语句 3 try...except...finally语句 4 使用raise语句抛出异常 5 自定义异常类型 6 异常链处理 在 Python中&#xff0c;异常是在程序运行时发生的错误或意外情…

华为eNSP:路由引入

一、拓扑图 二、路由器的配置 1、配置路由器的IP AR1&#xff1a; [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24 [Huawei-GigabitEthernet0/0/0]qu AR2&#xff1a; [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.2 24 [Huaw…

【Lua学习笔记】Lua进阶——函数和闭包

文章目录 函数函数嵌套闭包Closures可变函数函数重载 函数 函数嵌套 function A()print("这里是函数A")return function ()print("返回函数不要起名")end end B A() B()输出&#xff1a; 这里是函数A 返回函数不要起名使用函数嵌套的用法&#xff0c;我…

power dns recursor 4.5以后版本的奇葩问题

问题 最近升级了 pdns-recursor 从 4.1.X 升级至 4.8.x 出现下面问题 效果为 nslookup 可以返回 ip 地址 dig 无法返回对应 ip 地址 ad dns 服务器转发过来的解析都不响应 tcp 抓包如下 当使用 nslookup 请求时 addition rrs 请求为 0 当使用 dig 请求时 addition rrs 请求为 1…

Java虚拟机——Java内存模型

"Java内存模型"来屏蔽各种硬件和操作系统的内存访问差异&#xff0c;以实现让Java程序在各种平台下都能达到一致的内存访问效果。主要目的&#xff1a;定义程序中各种变量的访问规则&#xff0c;即关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细…

用 Node.js 手写 WebSocket 协议

目录 引言 从 http 到 websocekt 的切换 Sec-WebSocket-Key 与 Sec-WebSocket-Accept 全新的二进制协议 自己实现一个 websocket 服务器 按照协议格式解析收到的Buffer 取出opcode 取出MASK与payload长度 根据mask key读取数据 根据类型处理数据 frame 帧 数据的发…

使用Python搭建代理服务器- 爬虫代理服务器详细指南

搭建一个Python爬虫代理服务器可以让你更方便地管理和使用代理IP。下面是一个详细的教程来帮助你搭建一个简单的Python爬虫代理服务器&#xff1a; 1. 首先&#xff0c;确保你已经安装了Python。你可以在官方网站(https://www.python.org/)下载并安装最新版本的Python。 2. 安…

一.MySQL的主从复制

目录 一.MySQL的主从复制 1.2主从复制的工作过程和原理 1.2.1主从复制工作过程为两日志和三线程 ​编辑 1.2.2主从复制的工作原理 1.3主从复制延迟的原因 1.4主从复制的架构 1.5.MySQL四种同步方式 1.5.1异步复制(Async Replication) 1.5.2 同步复制&#xff08;Sync Re…

新功能 – Cloud WAN:托管 WAN 服务

我很高兴地宣布&#xff0c;我们推出了 Amazon Cloud WAN&#xff0c;这是一项新的网络服务&#xff0c;它可以轻松构建和运营连接您的数据中心和分支机构以及多个 Amazon 区域中的多个 VPC 的广域网&#xff08;WAN&#xff09;。 亚马逊云科技开发者社区为开发者们提供全球的…

Linux centos7.x系统 下没有ens33 网卡的解决方案

一、背景 安装完windows11 Centos7.9 版本的双系统之后 , 启动Centos7.9时发现没有网卡信息 , 只有ifcfg-lo网卡的信息 , 这个时候就证明没有网卡信息&#xff0c;或者网卡驱动不匹配(我这里是没有网卡)&#xff0c;所以我们要重新安装 , 安装步骤如下 : 二、安装步骤 1.查…

使用分布式HTTP代理爬虫实现数据抓取与分析的案例研究

在当今信息爆炸的时代&#xff0c;数据已经成为企业决策和发展的核心资源。然而&#xff0c;要获取大规模的数据并进行有效的分析是一项艰巨的任务。为了解决这一难题&#xff0c;我们进行了一项案例研究&#xff0c;通过使用分布式HTTP代理爬虫&#xff0c;实现数据抓取与分析…

C++多线程编程(第二章 多线程通信和同步)

1、多线程状态 1.1线程状态说明 初始化&#xff08;Init&#xff09;:该线程正在被创建&#xff1b; 就绪&#xff08;Ready&#xff09;:该线程在就绪列表中&#xff0c;等待CPU调度&#xff1b; 运行&#xff08;Running&#xff09;:该线程正在运行&#xff1b; 阻塞&…

吉林大学计算机软件考研经验贴

文章目录 简介政治英语数学专业课 简介 本人23考研&#xff0c;一战上岸吉林大学软件工程专硕&#xff0c;政治72分&#xff0c;英一71分&#xff0c;数二144分&#xff0c;专业课967综合146分&#xff0c;总分433分&#xff0c;上图&#xff1a; 如果学弟学妹需要专业课资料…

Pytorch个人学习记录总结 07

目录 神经网络-非线性激活 神经网络-线形层及其他层介绍 神经网络-非线性激活 官方文档地址&#xff1a;torch.nn — PyTorch 2.0 documentation 常用的&#xff1a;Sigmoid、ReLU、LeakyReLU等。 作用&#xff1a;为模型引入非线性特征&#xff0c;这样才能在训练过程中…

leetcode 852. Peak Index in a Mountain Array(峰值索引)

一个数组保证是峰值数组&#xff08;存在一个值大于左边和右边部分数组&#xff09;&#xff0c;找出峰值的index。 要求时间复杂度在O(logn)。 思路&#xff1a; 时间复杂度为O(logn), 可以想到用binary search. 其实用O(n)的找最大值也能通过。 public int peakIndexInMou…

Spring Boot 拦截器实现:登录验证 统一异常处理 返回数据规范化

学习 Spring 和 servlet 初期&#xff0c;我们在判断用户身份时&#xff0c;都是在每个方法中获取会话、获取对象&#xff0c;这种方式冗余度高&#xff0c;增加代码复杂度&#xff0c;维护成本也高&#xff0c;因此想到可以使用 AOP 来实现一个公共的方法&#xff0c;这个公共…

android逆向环境下载记录

frida、frida_tools、obejction、wallbreaker https://github.com/frida/frida/releases pip install frida14.1.2 pip install frida-tools9.0.1 pip install objection1.9.6 https://github.com/hluwa/Wallbreaker objection -g com.hexin.plat.android explore -P ~/.objec…