当前位置: 首页 > news >正文

ElasticSearch简单操作

目录

1.单机部署

1.1 解压软件

1.2 创建软链接

1.3 修改配置文件

1.4 配置环境变量

1.5 后台启动

2.配置分词器

2.1 安装IK分词器

2.2 ES 扩展词汇

3.常用操作

3.1 索引

3.1.1 创建索引

3.1.2 查看所有索引

3.1.3 查看单个索引

3.1.4 删除索引

3.2.文档

3.2.1 创建文档

3.2.2 查看文档

3.2.3 修改文档

3.2.4 修改字段

3.2.5 删除文档

3.2.6 条件删除文档

3.3.映射

3.3.1.创建索引

4.3.2.创建映射

3.3.3.查看映射

3.4.高级查询

3.4.1 查询所有文档

3.4.2 匹配查询

3.4.3 字段匹配查询

3.4.4 关键字精确查询

3.4.5 多关键字精确查询

4.4.6 指定查询字段

3.4.7 过滤字段

3.4.8 组合查询

3.4.9 范围查询


1.单机部署

1.1 解压软件

tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz

1.2 创建软链接

ln -s /data/opt/elasticsearch-7.15.2 /data/opt/elasticsearch

1.3 修改配置文件

修改/data/opt/elasticsearch/config/elasticsearch.yml 文件

# 加入(修改)如下配置
cluster.name: weisx-es
node.name: weisx-01
path.data: /data/opt/elasticsearch/data
path.logs: /data/opt/elasticsearch/logs
network.host: 0.0.0.0
cluster.initial_master_nodes: ["weisx-01"]

1.4 配置环境变量

vi ~/.base_profile
source ~/.base_profile

1.5 后台启动

bin/elasticsearch -d

6)验证安装结果
浏览器中输入地址:http://192.168.1.219:9200/

2.配置分词器

2.1 安装IK分词器

将ik分词器下载解压到ES安装目录下的plugins,然后重启ES即可。

默认分词

IK分词

2.2 ES 扩展词汇


        首先进入 ES 根目录中的 plugins 文件夹下的 ik 文件夹,进入 config 目录,创建 custom.dic 文件,写入自定义词汇。同时打开 IKAnalyzer.cfg.xml 文件,将新建的 custom.dic 配置其中, 重启 ES 服务器。

3.常用操作

3.1 索引

3.1.1 创建索引

对比关系型数据库,创建索引就等同于创建数据库
在 Postman 中,向 ES 服务器发 PUT 请求 :http://192.168.179.121:9200/shopping

3.1.2 查看所有索引

        在Postman中,向ES服务器发GET请求:http://192.168.179.121:9200/_cat/indices?v 
这里请求路径中的_cat 表示查看的意思,indices 表示索引,所以整体含义就是查看当前 ES服务器中的所有索引,就好像 MySQL 中的 show tables 的感觉,服务器响应结果如下

3.1.3 查看单个索引

        在 Postman 中,向 ES 服务器发 GET 请求 :http://192.168.179.121:9200/shopping
查看索引向 ES 服务器发送的请求路径和创建索引是一致的。

3.1.4 删除索引

        在Postman中,向 ES 服务器发 DELETE 请求 :http://192.168.179.121:9200/shopping


3.2.文档

3.2.1 创建文档

        索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式
在Postman中,向ES服务器发 POST 请求 :http://192.168.179.121:9200/shopping/_doc
请求体内容如下:

        上面的数据创建后,由于没有指定数据唯一性标识(ID),默认情况下,ES 服务器会随机生成一个。如果想要自定义唯一性标识,需要在创建时指定:http://192.168.179.121:9200/shopping/_doc/1

3.2.2 查看文档

        查看文档时,需要指明文档的唯一性标识,类似于 MySQL 中数据的主键查询
在Postman中,向ES服务器发GET请求:http://192.168.179.121:9200/shopping/_doc/1

3.2.3 修改文档

        和新增文档一样,输入相同的 URL 地址请求,如果请求体变化,会将原有的数据内容覆盖
在Postman中,向ES服务器发POST请求:http://192.168.179.121:9200/shopping/_doc/1
请求体内容如下:

3.2.4 修改字段

        修改数据时,也可以只修改某一给条数据的局部信息
在Postman中,向ES服务器发POST请求 :http://192.168.179.121:9200/shopping/_update/1
请求体内容如下:

3.2.5 删除文档

        删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)。
在 Postman 中,向ES服务器发DELETE请求 :http://192.168.179.121:9200/shopping/_doc/1
删除成功,服务器响应结果:

3.2.6 条件删除文档

        一般删除数据都是根据文档的唯一性标识进行删除,实际操作时,也可以根据条件对多条数据进行删除
向ES服务器发POST请求:http://192.168.179.121:9200/shopping/_delete_by_query
请求体内容如下:

3.3.映射

3.3.1.创建索引

在 Postman 中,向 ES 服务器发 PUT 请求 :http://192.168.179.121:9200/student

4.3.2.创建映射

        在Postman中,向ES服务器发PUT请求:http://192.168.179.121:9200/student/_mapping
请求体内容如下:

映射数据说明:
字段名:任意填写,下面指定许多属性,例如:title、subtitle、images、price
type:类型,Elasticsearch 中支持的数据类型非常丰富,说几个关键的:
     String 类型,又分两种:text:可分词;keyword:不可分词,数据会作为完整字段进行匹配
     Numerical:数值类型,分两类
        基本数据类型:long、integer、short、byte、double、float、half_float
        浮点数的高精度类型:scaled_float
     Date:日期类型
     Array:数组类型
    Object:对象
index:是否索引,默认为 true,也就是说你不进行任何配置,所有字段都会被索引。true:字段会被索引,则可以用来进行搜索;false:字段不会被索引,不能用来搜索
store:是否将数据进行独立存储,默认为 false;原始的文本会存储在_source 里面,默认情况下其他提取出来的字段都不是独立存储的,是从_source 里面提取出来的。当然你也可以独立的存储某个字段,只要设置"store": true 即可,获取独立存储的字段要比从_source 中解析快得多,但是也会占用更多的空间,所以要根据实际业务需求来设置。
analyzer:分词器

3.3.3.查看映射

        在Postman中,向ES服务器发GET请求:http://192.168.179.121:9200/student/_mapping

3.4.高级查询

3.4.1 查询所有文档

        在Postman中,向ES服务器发 GET 请求 :http://192.168.179.121:9200/student/_search
{
 "query": {
 "match_all": {}
 }
}
# "query":这里的 query 代表一个查询对象,里面可以有不同的查询属性
# "match_all":查询类型,例如:match_all(代表查询所有), match,term , range 等等
# {查询条件}:查询条件会根据类型的不同,写法也有差异

3.4.2 匹配查询

        match 匹配类型查询,会把查询条件进行分词,然后进行查询,多个词条之间是 or 的关系
在Postman中,向ES服务器发 GET 请求 :http://192.168.179.121:9200/student/_search
{
 "query": {
    "match": {
        "name":"zhangsan"
    }
 }
}

3.4.3 字段匹配查询

multi_match 与 match 类似,不同的是它可以在多个字段中查询。
在Postman中,向ES服务器发 GET 请求 :http://192.168.179.121:9200/student/_search
{
 "query": {
    "multi_match": {
        "query": "zhangsan",
        "fields": ["name","nickname"]
    }
 }
}

3.4.4 关键字精确查询

term 查询,精确的关键词匹配查询,不对查询条件进行分词。
在Postman中,向ES服务器发 GET 请求 :http://192.168.179.121:9200/student/_search
{
 "query": {
    "term": {
        "name": {
            "value": "zhangsan"
        }
    }
 }
}

3.4.5 多关键字精确查询

        terms 查询和 term 查询一样,但它允许你指定多值进行匹配。如果这个字段包含了指定值中的任何一个值,那么这个文档满足条件,类似于 mysql 的 in。
在Postman中,向ES服务器发GET请求 :http://192.168.179.121:9200/student/_search
{
 "query": {
    "terms": {
        "name": ["zhangsan","lisi"]
    }
 }
}

4.4.6 指定查询字段

        默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段,我们可以添加_source 的过滤
在Postman中,向ES服务器发GET请求 :http://192.168.179.121:9200/student/_search
{
 "_source": ["name","nickname"], 
 "query": {
 "terms": {
         "nickname": ["zhangsan"]
     }
 }
}

3.4.7 过滤字段

我们也可以通过:
    includes:来指定想要显示的字段
    excludes:来指定不想要显示的字段
在Postman中,向ES服务器发GET请求 :http://192.168.179.121:9200/student/_search
{
 "_source": {
 "includes": ["name","nickname"]
 }, 
 "query": {
    "terms": {
        "nickname": ["zhangsan"]
    }
 }
}

3.4.8 组合查询

`bool`把各种其它查询通过`must`(必须 )、`must_not`(必须不)、`should`(应该)的方式进行组合
在Postman中,向ES服务器发GET请求 :http://192.168.179.121:9200/student/_search
{
 "query": {
 "bool": {
 "must": [
    {
        "match": {"name": "zhangsan"}
    }
 ],
 "must_not": [
    {
        "match": {"age": "40"}
    }
 ],
 "should": [
    {
        "match": {"sex": "男"}
    }
 ]
 }
 }
}

3.4.9 范围查询

        range 查询找出那些落在指定区间内的数字或者时间。range 查询允许以下字符
gt:大于>
gte:大于等于>=
lt:小于<
lte:小于等于<=
在Postman中,向ES服务器发GET请求 :http://192.168.179.121:9200/student/_search
{
 "query": {
 "range": {
    "age": {
        "gte": 30,"lte": 35
    }
 }
 }
}

相关文章:

ElasticSearch简单操作

目录 1.单机部署 1.1 解压软件 1.2 创建软链接 1.3 修改配置文件 1.4 配置环境变量 1.5 后台启动 2.配置分词器 2.1 安装IK分词器 2.2 ES 扩展词汇 3.常用操作 3.1 索引 3.1.1 创建索引 3.1.2 查看所有索引 3.1.3 查看单个索引 3.1.4 删除索引 3.2.文档 3.2.1…...

android studio新版本gradle Tasks找不到assemble

最近需要打包arr&#xff0c;但android studio新版本为了加快编译速度&#xff0c;取消了gradle下的assemble任务&#xff0c;网上还没有博主更新解决方案&#xff0c;因此一直找不到解决方案&#xff0c;后来尝试如下操作才解决&#xff0c;方便后来者解决。 先将这里勾选上&…...

uniapp 小程序 身份证 和人脸视频拍摄

使用前提&#xff1a; 已经在微信公众平台的用户隐私协议&#xff0c;已经选择配置“摄像头&#xff0c;录像”等权限 开发背景&#xff1a;客户需要使用带有拍摄边框的摄像头 &#xff0c;微信小程序的方法无法支持&#xff0c;使用camera修改 身份证正反面&#xff1a; <…...

飞腾ARM UOS编译Qt 5.15.2源码及Qt Creator

背景 在 ARM 架构下&#xff0c;UOS 系统&#xff0c;需要使用 Qt 5.15.2 版本环境&#xff0c;所以只能通过源码编译的形式进行 Qt 环境的部署。 软硬件相关信息&#xff1a; 处理器: 飞腾 FT-2000 4 核制造商: Phytium架构: aarch 64家族: ARMv 8系统&#xff1a;UOS V 20…...

Oracle(2-2)Oracle Net Architecture

文章目录 一、基础知识1、Oracle Net Connections Oracle网络连接2、C/S Application Connection C/S应用程序连接3、OSI Communication Layers OSI通信层4、Oracle Protocol Support Oracle协议支持5、B/S Application Connections B/S应用程序连接6、TwoTypes JDBC Drivers 两…...

高速高精运动控制,富唯智能AI边缘控制器助力自动化行业变革

随着工业大数据时代的到来&#xff0c;传统控制与决策方式无法满足现代数字化工厂对工业大数据分析与决策的需求&#xff0c;AI边缘控制器赋能现代化智慧工厂&#xff0c;实现工业智造与行业变革。 富唯智能AI边缘控制器&#xff0c;基于x86架构的IPC形态产品&#xff0c;通过…...

GPTS应用怎么创建?GPTS无法创建应用很卡怎么办

在首届开发者大会上&#xff0c;OpenAI宣布推出了GPTs功能&#xff0c;也就是GPT Store&#xff0c;类似App Store的应用商店&#xff0c;任何用户都可以去参与创建应用。那么GPTS应用该如何创建?碰到应用无法创建很卡怎么办呢?下面就为大家带来GPTS应用创建图文教程&#xf…...

目标检测YOLO实战应用案例100讲-基于无人机的运动目标检测

目录 前言 国内外研究现状 2运动目标检测相关理论基础 2.1 运动目标检测算法...

东莞松山湖数据中心|莞服务器托管的优势

东莞位于珠江三角洲经济圈&#xff0c;交通便利&#xff0c;与广州、深圳等大城市相邻&#xff0c;而且东莞是中国重要的制造业基地&#xff0c;有众多的制造业和科技企业集聚于此&#xff0c;随着互联网和数字化时代的到来&#xff0c;企业都向数字化转型&#xff0c;对于信息…...

时间序列预测实战(十五)PyTorch实现GRU模型长期预测并可视化结果

往期回顾&#xff1a;时间序列预测专栏——包含上百种时间序列模型带你从入门到精通时间序列预测 一、本文介绍 本文讲解的实战内容是GRU(门控循环单元)&#xff0c;本文的实战内容通过时间序列领域最经典的数据集——电力负荷数据集为例&#xff0c;深入的了解GRU的基本原理和…...

探索STM32系列微控制器的特性和性能

STM32系列微控制器是意法半导体&#xff08;STMicroelectronics&#xff09;公司开发的一款强大的嵌入式微控制器系列。该系列微控制器以其丰富的特性和卓越的性能&#xff0c;成为了嵌入式系统开发领域的首选。本文将深入探索STM32系列微控制器的特性和性能&#xff0c;并结合…...

数据结构(超详细讲解!!)第二十三节 树型结构

1.定义 树型结构是一类重要的非线性数据结构&#xff0c;是以分支关系定义的层次结构。是一种一对多的逻辑关系。 树型结构是结点之间有分支&#xff0c;并且具有层次关系的结构&#xff0c;它非常类似于自然界中的树。树结构在客观世界中是大量存在的&#xff0c;例如家谱、…...

Python 日志记录器logging 百科全书 之 日志回滚

Python 日志记录器logging 百科全书 之 日志回滚 前言 在之前的文章中&#xff0c;我们学习了关于Python日志记录的基础配置。 本文将深入探讨Python中的日志回滚机制&#xff0c;这是一种高效管理日志文件的方法&#xff0c;特别适用于长时间运行或高流量的应用。 知识点&…...

线圈寿命预测 数据集讲解

来自-郭师兄 1.这个是线圈数据的阻抗、电抗等数据&#xff0c;我想根据这个个数据进行线圈寿命预测也就是RUL预测&#xff0c;请问有什么思路吗。 最简单的思路&#xff1a; 数据通过某种方法进行压缩表征到一维再通过 同时需要标签。 确定一个特征 使用降维方法如同PCA来构…...

Flutter.源码分析.flutter/packages/flutter/lib/src/widgets/scroll_view.dart/GridView

Flutter.源码分析 GridView flutter/packages/flutter/lib/src/widgets/scroll_view.dart/GridView 李俊才 的个人博客&#xff1a;https://blog.csdn.net/qq_28550263 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134375048 本文提供 Flutter 框…...

IDEA 2022创建Spring Boot项目

首先点击New Project 接下来&#xff1a; (1). 我们点击Spring Initializr来创建。 (2). 填写项目名称 (3). 选择路径 (4). 选择JDK------这里笔者选用jdk17。 (5). java选择对应版本即可。 (6). 其余选项如无特殊需求保持默认即可。 然后点击Next。 稍等一会&#xff0c…...

Python 框架学习 Django篇 (十) Redis 缓存

开发服务器系统的时候&#xff0c;程序的性能是至关重要的。经过我们前面框架的学习&#xff0c;得知一个请求的处理基本分为接受http请求、数据库处理、返回json数据&#xff0c;而这3个部分中就属链接数据库请求的响应速度最慢&#xff0c;因为数据库操作涉及到数据库服务处理…...

考研数学笔记:线性代数中抽象矩阵性质汇总

在考研线性代数这门课中&#xff0c;对抽象矩阵&#xff08;矩阵 A A A 和矩阵 B B B 这样的矩阵&#xff09;的考察几乎贯穿始终&#xff0c;涉及了很多性质、运算规律等内容&#xff0c;在这篇考研数学笔记中&#xff0c;我们汇总了几乎所有考研数学要用到的抽象矩阵的性质…...

C语言--假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只​

一.题目描述 假设共有鸡、兔30只&#xff0c;脚90只&#xff0c;求鸡、兔各有多少只&#xff1f; 二.思路分析 本题是一个典型的穷举法例题&#xff0c;而穷举法&#xff0c;最重要的就是条件判断。⭐⭐ 本题中的条件很容易发现&#xff1a; 假设鸡有x只&#xff0c;兔有y只…...

nacos适配达梦数据库

一、下载源码 源码我直接下载gitee上nacos2.2.3的&#xff0c;具体链接&#xff1a;https://gitee.com/mirrors/Nacos/tree/2.2.3&#xff0c;具体如下图&#xff1a; 二、集成达梦数据库驱动 解压源码包&#xff0c;用idea打开源码&#xff0c;等idea和maven编译完成&#xff…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...