ElasticSearch概述+SpringBoot 集成ES

news2025/2/23 22:39:48

ES概述

开源的、高扩展的、分布式全文检索引擎【站内搜索】

解决问题

1.搜索词是一个整体时,不能拆分(mysql整体连续)

2.效率会低,不会用到索引(mysql索引失效)

解决方式

进行数据的存储(只存储查询显示的内容)和检索

其他功能:日志统计、分析、监控。

ES名词解释

索引:同类型的文档集合

文档:以json形式,一条数据就是一个文档(mysql中的一行记录)

字段:json文档中的字段

映射:索引(表)中的文档(记录数据)约束:字段名称、类型,是否分词

正向索引:mysql

倒排索引:ElasticSearch使用倒排索引,对搜索内容进行分词,分出来的词成为词条,对词条进行分类统计,由高到低进行排序。

ES操作

索引操作

#创建索引库(PUT),查询索引库(GET),删除索引库(DELETE),添加新字段(PUT /news/_mapping)
PUT /news
{
  "mappings": {
    "properties": {
      "id":{
        "type": "integer",
        "index": false
      },
      "title":{
        "type": "text",
        "analyzer": "standard"
      },
      "content":{
        "type": "text",
        "analyzer": "standard"
      }
    }
  }
}

GET /news
DELETE /news

PUT /news/_mapping
{
  "properties": {
    "count":{
      "type": "long",
      "index": false
    }
  }
}

文档操作

#文档操作
PUT /news/_doc/1
{
  "id":1,
  "title":"美丽中国",
  "content":"当前,我国经济社会发展已进入加快绿色化、低碳化的高质量发展阶段,生态文明建设仍处于压力叠加、负重前行的关键期,生态环境保护结构性、根源性、趋势性压力尚未根本缓解,资源压力较大、环境容量有限、生态系统脆弱的国情没有改变,经济社会发展绿色转型内生动力不足,生态环境质量稳中向好的基础还不牢固,污染物和碳排放总量仍居高位,部分区域生态系统退化趋势尚未根本扭转,美丽中国建设任务依然艰巨。",
  "count":20
}

PUT /news/_doc/2
{
  "id":2,
  "title":"不忘初心",
  "content":"当前,我国经济社会发展已进入加快绿色化、低碳化的高质量发展阶段,生态文明建设仍处于压力叠加、负重前行的关键期,生态环境保护结构性、根源性、趋势性压力尚未根本缓解。",
  "count":10
}
GET /news/_doc/1
DELETE /news/_doc/1
POST /news/_update/1
{
  "doc":{
    "title":"中国"
  }
}

GET /news/_search
{
  "query": {
    "match": {
      "content":"我国"
    }
  }
}

SpringBoot 集成 ES

指定版本,版本必须与安装的 ES 版本一致

<properties>
<java.version>1.8</java.version>
<elasticsearch.version>7.6.1</elasticsearch.version>
</properties>

添加依赖

<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
@RestController
@RequestMapping(path = "/index/elastic")
public class ElasticSearchController {
    @Autowired
    RestHighLevelClient restHighLevelClient;

    @GetMapping(value = "/test")
    public String test() throws IOException {
        //创建索引库
        CreateIndexRequest request = new CreateIndexRequest("users");
        CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
        //判断索引库是否存在
        //GetIndexRequest request1 = new GetIndexRequest("users");

        return "success!";
    }
}
RestHighLevelClient类
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ElasticSearchConfig {

    @Bean
    public RestHighLevelClient restHighLevelClient(){
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("localhost", 9200, "http")));
        return client;
    }

}

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

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

相关文章

自动驾驶轨迹规划之碰撞检测(二)

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.基于凸优化 2.具身足迹 3. ESDF 自动驾驶轨迹规划之碰撞检测&#xff08;一&#xff09;-CSDN博客 大家可以先阅读之前的博客 1.基于…

FFMPEG解码实时流,支持cpu、gpu解码

官网下载的ffmpeg目前只能下载到X64版本的库&#xff0c;具体编译请参考windows编译ffmpeg源码&#xff08;32位库&#xff09;_windows 32位ffmpeg动态库-CSDN博客 直接上代码 int VideoDecodeModule::Open(std::string strUrl) {AVFormatContext *pFormatCtx nullptr;AVCo…

nestjs之JWT认证实现流程

nestjs的jwt认证利用了 Passport.js 的认证机制。要根据这个源码实现您自己的 AuthGuard&#xff0c;需要理解几个关键部分&#xff1a;如何集成 Passport.js、如何处理认证结果&#xff0c;以及如何使用 NestJS 的依赖注入系统。 先自定义一个策略函数类 // wsy.strategy.ts …

idea 安装免费Ai工具 codeium

目录 概述 ide安装 使用 chat问答 自动写代码 除此外小功能 概述 这已经是我目前用的最好免费的Ai工具了&#xff0c;当然你要是有钱最好还是用点花钱的&#xff0c;比如copilot&#xff0c;他可以在idea全家桶包括vs&#xff0c;还有c/c的vs上运行&#xff0c;还贼强&am…

宝塔发布网站问题汇总和记录

1、添加网站站点后打不开 解决办法&#xff0c;关闭防跨站攻击2 2、laravel项目部署到linux的时候出现The stream or file "/home/www/storage/logs/laravel.log" could not be opened in append mode 给目录加权限 chmod -R 777 storage 3、Class "Redis"…

5G阅信在汽车销售行业的应用与优势

5G阅信在汽车销售行业的应用与优势包括&#xff1a;提升客户体验&#xff0c;提供更快速、稳定的网络服务&#xff1b;实时数据传输&#xff0c;更好地了解客户需求&#xff1b;增强现实应用&#xff0c;提供更真实、直观的购车体验&#xff1b;创新营销方式&#xff0c;如短视…

介绍一个强大的免费开源.net反编译工具

dnSpy dnSpy 是一个用C#开发&#xff0c;开源的调试器和.NET 汇编编辑器。 即使您没有任何可用的源代码&#xff0c;也可以使用它来编辑和调试程序&#xff0c;并可以把代码导出成.net工程。

esp32-idf Eclipse Log日志打印demo

Log日志打印demo 1、代码例程 esp32-S2 芯片 / Eclipse软件 开发环境 #include <stdio.h> #include "sdkconfig.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_system.h" #include "esp_…

web自动化实现登录的几种方式

目录 前言 一、pythonunittest框架实现登录功能 二、pythonselenium实现登录功能 三、pythonrequests库实现登录功能 前言 今天主要想介绍python语言不同的自动化测试框架的结合方式来模拟登录功能。想了解自动化测试框架的同学不要错过哦&#xff01; 一、pythonunittest框…

MT6761芯片参数规格_MTK联发科4G智能模块

联发科MT6761平台采用12nm制程内建主频达 2.0 GHz 的 4 核 ARM Cortex–A53 处理器&#xff0c;IMG PowerVR GE 等级图形处理器&#xff0c;以及高速的 LPDDR4x 低功耗存储或是成本效益较高的 LPDDR3 内存。 内置微型化超低功耗的传感器中枢组件&#xff0c;适用于支持如计步器…

Python进程池multiprocessing.Pool

环境&#xff1a; 鲲鹏920:192核心 内存&#xff1a;756G python&#xff1a;3.9 python单进程的耗时 在做单纯的cpu计算的场景&#xff0c;使用单进程核多进程的耗时做如下测试&#xff1a; 单进程情况下cpu的占用了如下&#xff0c;占用一半的核心数&#xff1a; 每一步…

微服务实战项目_天机学堂01_初识项目

文章目录 一.项目简述二.Jenkins三.模拟真实业务:紧急bug修复和代码阅读四.测试和部署五.代码阅读-获取登录用户 一.项目简述 Q:天机学堂是什么? A:天机学堂是一个基于微服务架构的生产级在线教育项目 主要有两个端(项目已上线,可以点击查看): 管理后台: https://tjxt-admi…

【控制篇 / 分流】(7.4) ❀ 02. 对不同运营商IP网段访问进行分流 ❀ FortiGate 防火墙

【简介】公司有两条宽带用来上网&#xff0c;一条电信&#xff0c;一条联通&#xff0c;访问常用的某些网站速度时快时慢。领导要求&#xff0c;根据上网流量的目标运营商IP归属&#xff0c;将流量送到相应的运营商出口去&#xff0c;避免跨运营商上网。那么应该怎么做&#xf…

分销商城多端uniapp 可编译5端 - 等级提现额度

等级提现额度 等级提现额度是一种常见的财务管理策略&#xff0c;通常用于在线平台、金融服务或游戏中&#xff0c;用于控制不同等级用户的提现限额。这样的机制有助于平台管理资金流动性&#xff0c;防范欺诈&#xff0c;并鼓励用户提升他们的活跃度或忠诚度。以下是一个简单的…

HTML--JavaScript--语法基础

变量与常量 这个基本上没啥问题 变量命名规则&#xff1a; 变量由字母、数字、下划线、$组成&#xff0c;且变量第一个字符不能为数字 变量不能是系统关键字和保留字 语法&#xff1a; var 变量名 值&#xff1b;所有Javacript变量都由var声明 定义赋值字符串&#xff1a; …

大数据与人工智能赋能精益生产:掀起工业革命的浪潮!

随着科技的飞速发展&#xff0c;大数据和人工智能已经成为当今社会的热门话题。在这场科技革命中&#xff0c;大数据和人工智能如何赋能精益生产&#xff0c;引领工业革命的浪潮呢&#xff1f; 一、大数据&#xff1a;精益生产的智慧源泉 在精益生产中&#xff0c;大数据的应用…

力扣刷MySQL-第一弹(详细解析)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;力扣刷题讲解-MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出…

【数据结构】常见八大排序算法总结

目录 前言 1.直接插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 6.1Hoare版本 6.2挖坑法 6.3前后指针法 6.4快速排序的递归实现 6.5快速排序的非递归实现 7.归并排序 8.计数排序&#xff08;非比较排序&#xff09; 9.补充:基数排序 10.总结…

LLaMa2 Chat gpt 大模型本地部署初体验

一直想在自己电脑或者测试环境随便找台服务器尝试部署一下“大模型”&#xff0c;但“大模型”对于内存和GPU的要求令人望而却步&#xff0c;层出不穷的各种术语也令人困惑&#xff0c;有点难以下手。 经过一段时间&#xff0c;在百度千帆大模型平台、讯飞星火大模型平台、魔搭…

k8s源码阅读:Informer源码解析

写在之前 Kubernetes的Informer机制是一种用于监控资源对象变化的机制。它提供了一种简化开发者编写控制器的方式&#xff0c;允许控制器能够及时感知并响应 Kubernetes 集群中资源对象的变化。Informer通过与Kubernetes API服务器进行交互&#xff0c;通过监听API服务器上资源…