首页 > 其他分享 >ELK 8.0.0 数据增删改查

ELK 8.0.0 数据增删改查

时间:2023-06-27 22:44:22浏览次数:25  
标签:ELK fcarey 8.0 GET 改查 查询 文档 ES match

ELK 8.0.0 数据增删改查

目录

1 创建文档数据

PUT fcarey/_doc/1
{
  "name":"fcarey",
  "age":18,
  "city":"sz",
  "tag":["python","elk"]
}

PUT fcarey/_doc/2
{
  "name":"user01",
  "age":18,
  "city":"xm",
  "tag":["python","go"]
}

PUT fcarey/_doc/3
{
  "name":"user02",
  "age":27,
  "city":"sh",
  "tag":["go","php"]
}

PUT fcarey/_doc/4
{
  "name":"user03",
  "age":18,
  "city":"sh",
  "tag":["go","php","python and php"]
}

2 查找所创建的文档

# 查询fcarey索引中的所有文档
GET fcarey/_search

GET fcarey/_doc/1

# 查看当前系统中的索引

GET _cat/indices?v&s=index:asc
# 其中参数 v 全称是 verbose,表示返回详细的输出;s 参数表示进行排序(sort),形式 s=column1,column2:<desc/asc>。
/*
health: 当前健康状态
status: 开启/关闭(open/close)状态
index: 索引名称
uuid: 索引 uuid
pri: 主分片数目
rep: 副本分片数目
docs.count: 可用的文档数目
docs.deleted: 已删除的文档数目
store.size: 主分片和副本分片的存储文档空间大小
pri.store.size: 主分片的存储文档空间大小
GET _cat/indices?help
*/

3 更新文档中的数据

# 将1文档中的age字段修改为20
POST fcarey/_update/1
{
  "doc": {
    "age": 20
  }
}

4 删除索引

PUT test/_doc/1
{
  "name":"fcarey",
  "age":18,
  "city":"sz",
  "tag":["python","elk"]
}

# 删除test索引
DELETE test

GET test/_search

5 match

5.1 match_all

# match_all是没有任何条件,检索全部数据
GET fcarey/_search
{
  "query": {
    "match_all": {}
  }
}

5.2 match

match用来做基本的模糊匹配,在es中会对文本进行分词,在match查询的时候也会对查询条件进行分词,然后通过倒排索引找到匹配的数据。在match中支持以下参数:

  • query:查询条件
    • operator:匹配条件(AND、OR (Default))
    • minimum_should_match:最小匹配的数量,用来指定文档中至少包含几个关键字才算匹配到
    • fuzziness:最大编辑距离,详细参考Term级别查询中fuzzy查询一节的内容。
    • prefix_length:通过最大编辑距离进行模糊查询额时候,开始的多少个字符不允许被模糊,默认值为0。下面有例子
    • fuzzy_transpositions:boolean值,默认true,表示扩展模糊选项的时候,是否包含两个相邻字符的位置互换这种手段
    • fuzzy_rewrite:可以重写查询方法,目前还没实践到,关于更多说明可以参考:rewrite parameter
    • analyzer:可以指定分词器,如果不指定,用默认的
    • max_expansions:参考Term级别查询中fuzzy查询一节的内容。
    • zero_terms_query:在实际的文档中,可能有很多这样的词,比如中文中的的,了,呢,或者英文中的or、and、is、do等。那么这样的词对我们的搜索可能是没有任何帮助的,我们把这些的词- 叫做停用词,ES中有一个停用词分析器:Stop token filter,如果我们的查询请求的关键字中包括这些词,并且用到了这个分析器,那么他会帮我们把这些停用词移除掉。如果我们的查询请求中所有的关键字都被移除掉了,就不会匹配到任何文档,那么这个时候,是否要给用户返回一个空呢?ES提供了两种策略,也就是通过这个字段去表示的:
      • none (default):不返回任何文档
      • all:返回所有文档,相当于执行了match_all
    • lenient:lenient有仁慈的,宽容的意思。这里表示是否忽略一些输入错误,比如为一个数字类型的字段输入了一个字符串去匹配,如果设置为true,会忽略,默认值是false
    • auto_generate_synonyms_phrase_query:在有些场景,可能一个意思有两种写法,比如ElasticSearch有些人可能会写成ES,虽然写法不一样,但是描述的是一个东西,那么如果我们限定查询条件为ElasticSearch,其实也是希望能搜索到ES相关内容的。我们可以把这种词叫做同义词查询。因此ES为我们提供了这个参数,表示是否开启同义词查询,默认是true,也就是开启的。但是有一个问题就是ES他怎么知道哪些词是同义词呢?Lucene中有一个概念叫Synonym Graph Token Filter,那么ES中也是有的,我们可以通过对这个进行配置来实现同义词查询
GET fcarey/_search
{
  "query": {
    "match": {
      "tag": "python elk"
    }
  }
}

5.3 match_phrase

# match_phrase(phrase: 短语) 会对输入做分词,但是需要结果中也包含所有的分词,并且顺序要求一致。这个条件其实有一点苛刻了,有时候可能我输入错了,或者一个短语,只记得其中两个单词,第三个单词死活记不起来怎么办呢?ES也提供了slop这个参数帮我们解决这个问题:slop (default 0):(slop:溢出)来指定额外加几个单词也可以命中。

GET fcarey/_search
{
  "query": {
    "match_phrase": {
      "tag": {
        "query": "python php",
        "slop": 1
      }
    }
  }
}

标签:ELK,fcarey,8.0,GET,改查,查询,文档,ES,match
From: https://www.cnblogs.com/f-carey/p/17510106.html

相关文章

  • ELK8.8部署安装并配置xpark认证
    ELK8.8部署安装并配置xpark认证介绍  主要记录下filebeat+logstash+elasticsearch+kibana抽取过滤存储展示应用日志文件的方式;版本基于8.8,并开启xpack安全认证。由于从7.X开始就自带JDK,故这里也不展示环境配置等步骤。下载服务elasticsearch:https://artifacts.elastic.......
  • 试用Proxmox VE 8.0搭建云桌面系统
    6月22日发布了其服务器虚拟化管理平台Proxmox虚拟环境的稳定版0.12。这个主要版本基于最新的Debian7(“书虫”),并为ProxmoxVE4.8或旧版本的用户提供了经过广泛测试和详细的升级路径,以实现顺利升级。ProxmoxVE0.6使用较新的Linux内核2.8作为稳定的默认值,并包括对虚拟环境(如QE......
  • Ubuntu18.04下安装PostgreSQL 9.6和PostGis 2.5
    一、安装PostgreSQL1、添加库sudoadd-apt-repository"debhttps://apt.postgresql.org/pub/repos/apt/trusty-pgdgmain"2、添加keywget--quiet-O-https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudoapt-keyadd-3、安装sudoapt-getupdatesudoapt-......
  • elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
    1.本次采用的一台主机,将所有的软件安装一台上进行测试工作。2.安装部署:https://blog.51cto.com/hwg1227/22999953.简单调试输出rubydebuginput{file{path=>"/usr/local/log_test/*/*/*.log"start_position=>"beginning"}}output{e......
  • MySQL 8.0原理与实战一网打尽,甲骨文数据库专家硬刚5年之作
    根据权威数据库技术排名网站DB-Engines今年4月的最新数据,MySQL是全球最流行的开源数据库,没有之一。在所有数据库排名中,MySQL仅次于Oracle,“屈居”亚军之位。但大家从截图中可以看出,MySQL与Oracle的得分差距已经非常小了。“开源壮年”数据库MySQL自1995年发布1.0版本以来,迄今已经走......
  • Vmware ESXi 8.0安装Ubuntu18.04-Server教程
    一、创建虚拟机新建虚拟机下一步即可设置虚拟机名称及安装的系统选择一个可用的磁盘分配虚拟机硬件配置,并选择镜像分配基本的内存、硬盘空间后,点击CD/DVD选择镜像配置路径二、安装Ubuntu-Server安装完成后我们点开创建好的虚拟机如下,点击打开电源......
  • mysql 8.0.26以下版本的bug
    ############################## https://bugs.mysql.com/bug.php?id=103636               ####################################......
  • 关于微信IPAD协议8.0.37个人号开发过程/个微协议/IPAD协议/个人微信号开发/微信机器人
    GEWE框架是基于微信iPad8.0.37协议在设备上实现完整微信功能的协议。它提供了丰富的功能模块,包括登录模块和其他重要功能模块,使用户能够在设备上方便地使用微信。登录模块:登录模块是微信iPad8.0.37协议的核心,它提供了登录微信账号的功能。用户可以通过以下步骤完成登录:登录GEWE框......
  • MGR8.0 支持savepoint
    MGR8.0支持savepoint MGR在MySQL5.7的版本中开始引入,但是不支持savepoint,这对一些业务场景来说不是太实用。千呼万唤始出来,在MySQL8.0的MGR中终于支持savepoint,但是很多人找不到,这里我来给大家呈现出来。在MySQL8.0.17以后的环境中尽量MGR,配置简单还好用。Replication:GroupRe......
  • ELK
    ELK是当前比较流行的一套框架,主要用于日志的采集和查询ELK:ElasticSearch+Logstash+Kibana ElasticSearch:全文搜索引擎 Logstash:日志采集系统,可以从多个来源采集并转换数据,然后将数据输出到指定存储单元中(官方推荐的存储单元位ElasticSearch) Kibana:是ES的可视化工具 ......