elasticsearch集成springboot详细使用
1.es下载&配置
配置JVM

配置跨域

配置https和密码

2.es启动
.\elasticsearch.bat
或 后台启动:
nohup ./bin/elasticsearch&
浏览器访问:https://localhost:9200
输入账户:elastic / 123456

3.重置es密码
.\elasticsearch-reset-password.bat -u elastic -i

4.安装图形化插件:elasticsearch-head插件,完成图形化界面的效果,完成索引数据的查看
-
es核心概念
面向文档
可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤
Elasticsearch对比传统[关系型数据库]如下:
Relational DB ‐> Databases ‐> Tables ‐> Rows ‐> Columns
Elasticsearch ‐> Index ‐> Types ‐> Documents ‐> Fields
集群cluster:一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。一个集群由 一个唯一的名字标识,这个名字默认就是“elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集 群的名字,来加入这个集群。
节点node:一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能;一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫 做“elasticsearch”的集群中
分片和复制 shards&replicas:一个索引可以存储超出单个结点硬件限制的大量数据
ElasticSearch客户端操作:
- 使用elasticsearch-head插件
- 使用elasticsearch提供的Restful接口直接访问
- 使用elasticsearch提供的API进行访问
Elasticsearch的接口语法:


查询文档document有三种方式:
- 根据id查询;
- 根据关键词查询
- 根据输入的内容先分词,再查询
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>
1.创建实体import lombok.Data;
import org.apache.catalina.Store;
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 = "article")
@Data
public class Article {@Id@Field(index = false,type = FieldType.Integer)private Integer id;/*** index:是否设置分词 默认为true* analyzer:储存时使用的分词器* searchAnalyze:搜索时使用的分词器* store:是否存储 默认为false* type:数据类型 默认值是FieldType.Auto**/@Field(analyzer = "ik_smart",searchAnalyzer = "ik_smart",store = true,type = FieldType.Text)private String title;@Field(analyzer = "ik_smart",searchAnalyzer = "ik_smart",store = true,type = FieldType.Text)private String context;@Field(store = true,type =FieldType.Integer)private Integer hits;
}2.创建CRUD操作类
import com.cloud.entities.Article;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;import java.util.List;/*** 自定义接口需要继承ElasticsearchRepository<实体类型,主键类型> 基本的crud 分页*/
@Component
public interface ArticalRepository extends ElasticsearchRepository<Article,Integer> {List<Article> findByTitle(String title);List<Article> findArticleByTitleOrContext(String title,String context);/*** 根据标题或内存查询(含分页)* @param title* @param context* @param pageable0* @return*/List<Article> findByTitleOrContext(String title, String context, Pageable pageable0);}3.创建启动入口类
@SpringBootApplication
@MapperScan("com.cloud.mapper") //import tk.mybatis.spring.annotation.MapperScan
public class Main8001 {public static void main(String[] args) {SpringApplication.run(Main8001.class,args);}}
4.配置springboot配置esspring:elasticsearch:uris: http://localhost:9200connection-timeout: 5s#username: elastic#password: 1234565.创建单元测试类
import com.cloud.Main8001;
import com.cloud.entities.Article;
import com.cloud.repository.ArticalRepository;
import jakarta.annotation.Resource;
import org.elasticsearch.client.RestClient;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.document.Document;
import org.springframework.data.elasticsearch.core.query.UpdateQuery;
import org.springframework.test.context.junit4.SpringRunner;import java.util.Arrays;
import java.util.Map;@RunWith(SpringRunner.class)
@SpringBootTest(classes = Main8001.class)
public class ArticleTest {@Resourceprivate RestClient restClient;@Resourceprivate ElasticsearchTemplate elasticsearchTemplate;@Resourceprivate ArticalRepository articalRepository;/**1.* 使用ElasticsearchTemplate*/@Testvoid insert(){Article article=new Article();article.setTitle("男乒乓");article.setId(1);article.setContext("中国赢了");article.setHits(100);elasticsearchTemplate.save(article);}/*** 2.* 使用Repository*/@Testvoid insert2(){Article article=new Article();article.setTitle("男乒乓2");article.setId(2);article.setContext("中国赢了2");article.setHits(120);articalRepository.save(article);}/*** 批量保存*/@Testvoid insert3(){Article article=new Article();article.setTitle("男乒乓3");article.setId(3);article.setContext("中国赢了2");article.setHits(130);articalRepository.saveAll(Arrays.asList(article));}@Testvoid update(){Article article= articalRepository.findById(2).get();article.setTitle("篮球");articalRepository.save(article);}@Testvoid update2(){Article article=new Article();article.setId(2);article.setTitle("网球");elasticsearchTemplate.update(article);}/*** 查询全部数据*/@Testvoid findAll(){Iterable<Article> articles=articalRepository.findAll();articles.forEach(System.out::println);}/*** 根据id删除*/@Testvoid deleteById(){articalRepository.deleteById(3);}/*** 删除:传入实体类删*/@Testvoid delete(){Article article=new Article();article.setId(3);articalRepository.delete(article);}/*** 删除索引里面所有数据*/@Testvoid deleteAll(){articalRepository.deleteAll();}}
-
测试工具:postman
-
es 参考资料:
https://cloud.tencent.com/developer/article/2249187
https://www.hadoopdoc.com/elasticsearch/elasticsearch-begin-tutorial
相关文章:
elasticsearch集成springboot详细使用
1.es下载&配置 配置JVM 配置跨域 配置https和密码 2.es启动 .\elasticsearch.bat 或 后台启动: nohup ./bin/elasticsearch& 浏览器访问:https://localhost:9200 输入账户:elastic / 123456 3.重置es密码 .\elasticsearch-r…...
html+css网页制作 化妆品电商4个页面
htmlcss网页制作 化妆品电商4个页面 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1ÿ…...
微调LLama 3.1——七月论文审稿GPT第5.5版:拿早期paper-review数据集微调LLama 3.1
前言 对于llama3,我们之前已经做了针对llama3 早7数据微调后的测评 去pk llama2的早7数据微调后,推理测试集中的早期paper:出来7方面review去pk gpt4推理测试集中的早期paper:7方面reviewground truth是早期paper的7方面人工rev…...
rust 编译时报错:type annotations needed for Box
如下图所示: 解决方法: 升级time的版本: cargo update -p time...
应用方案 | 低功耗接地故障控制器D4145
一、概述 D4145 是一个接地故障断路器。它能够检测到不良的接地条件,譬如装置接触到水时,它会在有害或致命的电击发生之前将电路断开。 D4145能检测并保护从火线到地线,从零线到地线的故障.这种简单而传统的电路设计能够确保其应用自如和长时间的可靠性。…...
第一次彩色pcb打样记录
感受和总结 看到彩色电路板和绿油板放在一起,感触还是挺大的。而且彩色板还直接给沉金,感觉焊上器件不要外壳都很好看了。后面一定记录一下这个板子实现的功能。 板子功能暂时分配 五个触摸盘,为了通过触摸控制不同功能,例如&a…...
通过 MediatR 实现了请求的分发和处理器的解耦
1. 前端请求发起 假设前端通过 HTTP GET 请求访问 GetTemplateSettings 端点,URL 中包含了 SubjectUuid 和 SubjectType 作为查询参数。 2. 进入 Controller 方法 请求到达后,会进入 MinBcController 类中的 GetTemplateSettings 方法,该方…...
Naive UI+vue一些组件的注意事项
NSpace(间距 Space) 默认给出space内的组件加一个div间隔,只能批量修改space内的元素样式,不能单独修改自组件样式,一般用于横向布局,若垂直布局若需要flex布局,慎用space组件NDataTable(数据表格 Data Table) :flex-h…...
sgetrf M N is 103040 时报错,这是个bug么 lapack and Openblas the same,修复备忘
号外: $ clang-format -style"{BasedOnStyle: llvm, IndentWidth: 4}" -i hello.cpp $ clang-format -style"{BasedOnStyle: llvm, IndentWidth: 4}" -i hello.cpp IndentWidth:4不错,默认2太下了 1,现象 MN103040时&…...
[后端代码审计] PHP 数组知识汇总
文章目录 前言1. 数组基础1.1 数组概念1.2 索引数组1.3 关联数组1.4 多维数组 2. 数组函数2.1 count()2.2 array_merge()2.3 array_keys()2.4 array_values()2.5 in_array() 3. 数组遍历3.1 for循环遍历3.2 foreach遍历3.3 遍历索引数组3.4 遍历关联数组 4. 数组排序4.1 sort()…...
单点Redis中面临哪些问题
我的后端学习大纲 我的Redis学习大纲 1.面试:请说下在单点Redis中面临哪些问题: 1.1.单点Redis的问题: 1.数据丢失问题:Redis是内存存储,服务重启可能会丢失数据 2.并发能力问题:单节点Redis并发能力虽然…...
数学建模--蒙特卡洛算法之电子管更换刀片寿命问题
目录 1.电子管问题重述 2.电子管问题分析 3.电子管问题求解 4.刀片问题重述 5.刀片问题分析 6.刀片问题求解 1.电子管问题重述 某设备上安装有4只型号规格完全相同的电子管,已知电子管寿命服从100~200h之间的均匀分布. 只要有一个电子管…...
如何解码Linux下事件响应工具evtest的时间戳
evtest介绍 这里放一下原文链接evtest工具介绍及安装 在开发input子系统驱动时,常常会使用evtest工具进行测试。evtest是打印evdev内核事件的工具,它直接从内核设备读取并打印设备描述的带有值和符号名的事件,可以用来调试鼠标、键盘、触摸…...
基于STM32开发的智能门禁系统
目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 小区门禁管理企业办公门禁系统常见问题及解决方案 常见问题解决方案结论 1. 引言 智能门禁系统通过整合多种身份识别技术,如密码输入、RFID刷卡、指…...
EasyExcel-高性能的 Java Excel 处理库
EasyExcel 是阿里巴巴开发的一个高性能的 Java Excel 处理库,主要用于处理大规模的 Excel 文件。它特别注重性能,优化了内存消耗,适合处理大数据量的 Excel 文件,避免了传统 Excel 库在处理大文件时的性能瓶颈。 主要功能 高性能…...
精益生产培训秘籍:六步策略,助力企业降本增效——张驰咨询
在当今竞争激烈的市场环境中,企业为了提高生产效率、降低成本、增强市场竞争力,纷纷引入精益生产理念。精益生产作为一种以客户需求为导向,通过持续消除浪费、优化流程、提升质量的生产方式,已成为众多企业转型升级的利器。张驰咨…...
【第19章】Spring Cloud之Gateway自定义Logback配置
文章目录 前言一、内置配置1. 关联依赖2. 内置配置 二、自定义配置1. 日志级别2. 彩色日志3. 自定义配置4. 增加打印语句5. 效果展示 总结 前言 网关层作为我们程序的主入口,有着至关重要的作用,下面我们通过自定义Logback配置增强网关层的日志输出&…...
Java流式编程
一、流的基础概念 流(Stream): 定义:流是一种可以在数据集合上进行操作的抽象化序列,它没有存储数据的能力,而是通过一系列的操作来处理数据。特性: 无存储:流不存储数据,…...
高可用集群keepalived从部署到实战一篇解决
目录 一.高可用集群 1.1 集群类型 1.2 系统可用性 1.3 系统故障 1.4 实现高可用 1.5.VRRP: 1.5.1 VRRP 相关术语 1.5.2 VRRP 相关技术 二.Keepalived 部署 2.1 keepalived 简介 2.2keepalived架构 2.3 Keepalived 环境准备 2.4 Keepalived 相关文件 2.…...
22222222222
222222222222222222...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
GeoServer发布PostgreSQL图层后WFS查询无主键字段
在使用 GeoServer(版本 2.22.2) 发布 PostgreSQL(PostGIS)中的表为地图服务时,常常会遇到一个小问题: WFS 查询中,主键字段(如 id)莫名其妙地消失了! 即使你在…...
Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...
