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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

@Async注解的坑

问题描述 一个方法调用另一个方法(该方法使用Async注解)在同一个类文件中&#xff0c;该注解会失效&#xff01; 问题复现 TestAsyncController 类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Async; im…

双十一大促已过,虾皮、Lazada年底如何通过测评补单打造搜索排名

双十一大促已过&#xff0c;有人欢喜有人忧&#xff0c;不管怎么样&#xff0c;年底的这波旺季还是要好好把握的。 如何提升虾皮搜索排名 1、标题关键词匹配度 Shopee、Lazada的排名规则主要是根据用户搜索时输入的关键字和卖家的商品标题、描述等是否相匹配来进行排名&…

P6入门:项目初始化7-项目详情之代码/分类码Code

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…

qnx log 系统

前言 本文主要介绍QNX 系统中的 log 打印相关接口和使用方法 软件环境:qnx7.1 一、QNX查看 log 的工具 slog2info 1. slog2info 的相关介绍 和linux 中查看 kernel log 信息的 dmesg 命令一样, qnx 里面也有一个查看 log 信息的命令,那就是 slog2info 命令, 如下图所示是…

Spark SQL 每年的1月1日算当年的第一个自然周, 给出日期,计算是本年的第几周

一、问题 按每年的1月1日算当年的第一个自然周 (遇到跨年也不管&#xff0c;如果1月1日是周三&#xff0c;那么到1月5号&#xff08;周日&#xff09;算是本年的第一个自然周, 如果按周一是一周的第一天) 计算是本年的第几周&#xff0c;那么 spark sql 如何写 ? 二、分析 …

0基础学习PyFlink——水位线(watermark)触发计算

在《0基础学习PyFlink——个数滚动窗口(Tumbling Count Windows)》和《0基础学习PyFlink——个数滑动窗口&#xff08;Sliding Count Windows&#xff09;》中&#xff0c;我们发现如果窗口中元素个数没有把窗口填满&#xff0c;则不会触发计算。 为了解决长期不计算的问题&a…

Arthas(阿尔萨斯)--(二)

目录 一、Arthas学习 1、JVM相关命令一 1、dashboard 2、thread 3、jvm 4、sysprop 一、Arthas学习 Arthas(阿尔萨斯)--(一) Arthas代码开源地址 1、JVM相关命令一 1、dashboard dashboard:显示当前系统的实时数据面板&#xff0c;按q或ctrlc退出 ID: Java 级别的线…

Docker - 容器数据卷

Docker - 容器数据卷 什么是容器数据卷 等同于挂载&#xff0c;将容器内的目录地址指向于宿主机文件系统中 直接使用命令来挂载 -v docker run -it -v 主机目录:容器内目录# 测试 docker run -it -v /root:/home centos /bin/bash [rootiZ2zeg7mctvft5renx1qvbZ ~]# docker …

vscode 快速打印console.log

第一步 输入这些 {// Print Selected Variabl 为自定义快捷键中需要使用的name&#xff0c;可以自行修改"Print Selected Variable": {"body": ["\nconsole.log("," %c $CLIPBOARD: ,"," background-color: #3756d4; padding:…

Linux---(六)自动化构建工具 make/Makefile

文章目录 一、make/Makefile二、快速查看&#xff08;1&#xff09;建立Makefile文件&#xff08;2&#xff09;编辑Makefile文件&#xff08;3&#xff09;解释&#xff08;4&#xff09;效果展示 三、背后的基本知识、原理&#xff08;1&#xff09;如何清理对应的临时文件呢…

Js 语句

JavaScript 语句向浏览器发出的命令&#xff0c;语句的作用是告诉浏览器该做什么&#xff1b;分号用于分隔 JavaScript 语句&#xff0c;通常我们在每条可执行的语句结尾添加分号&#xff1b;使用分号的另一用处是在一行中编写多条语句。 JavaScript 语句通常以一个 语句标识符…

postgreSQL中的高速缓存

1. 高速缓存简介 ​如下图所示&#xff0c;当一个postgreSQL进程读取一个元组时&#xff0c;需要获取表的基本信息&#xff08;例如&#xff1a;表的oid、索引信息和统计信息等&#xff09;及元组的模式信息&#xff0c;这些信息被分别记录在多个系统表中。通常一个表的模式信…