ElasticSearch简单操作

news2024/12/23 14:04:06

目录

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
    }
 }
 }
}

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

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

相关文章

排序算法之-快速

算法原理 丛待排序的数列中选择一个基准值&#xff0c;通过遍历数列&#xff0c;将数列分成两个子数列&#xff1a;小于基准值数列、大于基准值数列&#xff0c;准确来说还有个子数列&#xff1a;等于基准值即&#xff1a; 算法图解 选出基准元素pivot&#xff08;可以选择…

【藏经阁一起读】(76)__《“DNS+”发展白皮书》

【藏经阁一起读】&#xff08;76&#xff09;__《“DNS”发展白皮书》 作者&#xff1a; 梁卓 宋林健 陈剑 刘志辉 刘保君 郭丰 马晨迪 马永 孙俊哲 沈建伟 嵇叶楠 孙宛月 张建光 李贤达 张晓军 赵华 发布时间&#xff1a;2023-10-31 章节数&#xff1a;6 一、基础知识 1.1、…

《深入浅出进阶篇》洛谷P4147 玉蟾宫——悬线法dp

上链接&#xff1a;P4147 玉蟾宫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P4147 上题干&#xff1a; 有一个NxM的矩阵&#xff0c;每个格子里写着R或者F。R代表障碍格子&#xff0c;F代表无障碍格子请找出其中的一个子矩阵&#xff0c…

做一个Sprngboot文件上传-阿里云

概述 这个模块是用来上传头像以及文章封面的&#xff0c;图片的值是一个地址字符串&#xff0c;一般存放在本地或阿里云服务中 1、本地文件上传 我们将文件保存在一个本地的文件夹下&#xff0c;由于可能两个人上传不同图片但是却同名的图片&#xff0c;那么就会一个人的图片就…

JavaEE——网络原理(网络层 IP协议与数据链路层)

文章目录 一、详细解释 IP协议二、解释 TCP 和 IP 之间的联系和区别。三、IP协议——地址管理四、数据链路层 一、详细解释 IP协议 注&#xff1a;在这里我向大家描述的 IP协议是 IPv4。 如上图所示&#xff0c;这就是 IP 协议头的格式&#xff0c;下面我会分别解释他们其中每…

【C++笔记】AVL树的模拟实现

【C笔记】AVL树的模拟实现 一、AVL树的概念二、AVL树的模拟实现2.1、定义节点2.2、插入2.3、旋转2.3.1、左单旋2.3.2、右单旋2.3.3、左右双旋2.3.4、右左双旋2.3.5、插入接口的整体代码实现 三、验证AVL树3.1、验证 一、AVL树的概念 二叉搜索树虽然在一般情况下可以提高查找的…

如何使用`open-uri`模块

首先&#xff0c;我们需要使用open-uri模块来打开网页&#xff0c;并使用Nokogiri模块来解析网页内容。然后&#xff0c;我们可以使用Nokogiri的css方法来选择我们想要的元素&#xff0c;例如标题&#xff0c;作者&#xff0c;内容等。最后&#xff0c;我们可以使用open-uri模块…

多语言TTS:Multilingual speech synthesis

文章目录 [Learning to Speak Fluently in a Foreign Language:Multilingual Speech Synthesis and Cross-Language Voice Cloning](https://arxiv.org/abs/1907.04448)[2019interspeech][google][Improving Cross-lingual Speech Synthesis with Triplet Training Scheme](htt…

3DMAX建模基础教程:捕捉功能

在3DMAX中&#xff0c;捕捉功能是一项极其重要的技术&#xff0c;它能帮助我们在创建三维模型时更加精确和高效。本教程将详细介绍3DMAX中的捕捉功能及其应用。 1. 捕捉简介 3DMAX中的捕捉功能是指将物体固定在三维空间中的特定位置&#xff0c;以便进行精确的建模操作。这种…

0基础学习VR全景平台篇第120篇:极坐标处理接缝 - PS教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 紧跟上节课&#xff0c;我们已经学会了怎么利用PS蒙版工具来对航拍全景图补天。但是在后续工作学习中&#xff0c;我们会遇到天空这部分存在部分接缝的问题&#xff0c;如图&…

算法通关村第八关-黄金挑战

大家好我是苏麟 ...... 路径总和2 描述 : 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 题目 : LeetCode 113.路径总和2 113. 路径总和 II 分析 : 这…

为什么UI自动化难做?—— 关于Selenium UI自动化的思考

在快速迭代的产品、团队中&#xff0c;UI自动化通常是一件看似美好&#xff0c;实际“鸡肋”&#xff08;甚至绝大部分连鸡肋都算不上&#xff09;的工具。原因不外乎以下几点&#xff1a; 1 效果有限 通常只是听说过&#xff0c;就想去搞UI自动化的团队&#xff0c;心里都认…

数据跨领域应用实例—车辆通行大数据应用场景(二)

2023年10月25日&#xff0c;国家数据局正式揭牌。标志着我国数据基础制度正在不断完善&#xff0c;数据资源使用水平稳步提升&#xff0c;数据要素市场将进入发展快车道。当前&#xff0c;数字经济已成为我国经济高质量发展的新动能&#xff0c;国家数据局的成立&#xff0c;在…

Python高级语法----Python类型注解与类型检查

文章目录 一、类型注解基础二、使用 `mypy` 进行类型检查三、类型注解的最佳实践结论在当今的软件开发实践中,类型注解和类型检查在提高代码的可读性和健壮性方面发挥着至关重要的作用。尤其在 Python 这种动态类型语言中,通过类型注解和类型检查工具,如 mypy,可以显著提升…

python爬虫代理ip关于设置proxies的问题

目录 前言 一、什么是代理IP? 二、为什么需要设置代理IP? 三、如何设置代理IP? 四、完整代码 总结 前言 在进行Python爬虫开发时&#xff0c;经常会遇到被封IP或者频繁访问同一网站被限制访问等问题&#xff0c;这时&#xff0c;使用代理IP就可以避免这些问题&#x…

微软允许OEM对Win10不提供关闭Secure Boot

用户可能将无法在Windows 10电脑上安装其它操作系统了&#xff0c;微软不再要求OEM在UEFI 中提供的“关闭 Secure Boot”的选项。 微软最早是在Designed for Windows 8认证时要求OEM的产品必须支持UEFI Secure Boot。Secure Boot 被设计用来防止恶意程序悄悄潜入到引导进程。问…

高版本模拟器安装burp证书

一、下载burp证书&#xff0c;安装openssl http://burp自己找官网安装opensslWin32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)二、查看模拟器端口并连接 adb devices openssl x509 -inform der -in cacert.der -out burp.pem openssl…

一分多行列转换

问题描述&#xff1a; 将以下表方式存放的数据&#xff1a; 转换成如下方式存放&#xff1a; 1、 建表语句及插入测试数据 --建表语句 create table INFC_C_GUARANTOR_NISJ (CUST_NO VARCHAR2(30),BAIL_ACCT_NO VARCHAR2(2000) ); create table INFC_C_GUARANTOR_NISJ_N…

重复性工作自动化解决方案——影刀

以前&#xff0c;影刀是一个邂逅的初见小工具&#xff0c;新奇在里头&#xff0c;踌躇在外头&#xff1b; 现在&#xff0c;影刀是一个稳定的职场贾维斯&#xff0c;高效在里头&#xff0c;悠闲在外头&#xff1b; 以后&#xff0c;影刀是一个潜力的知己老司机&#xff0c;有序…

ROS 通信机制

ROS是一个分布式框架&#xff0c;为用户提供多节点&#xff08;进程&#xff09;之间的通信服务&#xff0c;所有软件和功能都建立在这种分布式通信机制上&#xff0c;ROS的通信机制是最底层也是最核心的技术。 一、话题通信机制 话题在 ROS 中使用最为频繁&#xff0c;其通信…