002 使用kibana操作ElasticSearch7.x

文章目录

    • 4.使用kibana操作es
      • 4.1.文档操作
        • 1.put方式发送数据
        • 2.post方式发送数据
        • 3.查看索引文档 GET
        • 4.更新文档 POST
        • 5.删除文档&索引 DELETE
        • 6.批量添加数据_bulk
      • 4.2.Query DLS(查询领域对象语言)
        • 1.url 检索数据语法
        • 2.查询所有数据
        • 3.查询全部数据并排序
        • 4.查询全部数据排序并分页
        • 5.区间查询
        • 6.全文检索 match
        • 7.短语匹配 match_phrase
        • 8.multi_match 多字段匹配
        • 9.bool复合查询 多个条件进行匹配查询
        • 10.filter结果过滤
        • 11.term 非全文检索
        • 12.高亮查询
      • 4.3.Mapping映射
        • 1.创建索引和字段映射类型
        • 2.查看该索引下的字段映射类型
        • 3.新增映射字段类型
      • 4.4.数据迁移

4.使用kibana操作es

点击Dev Tools,进入操作控制台

4.1.文档操作

1.put方式发送数据

没有索引会自动创建并保存数据,如果id相同则会覆盖

PUT news/_doc/1
{
  "username":"zhangsan",
  "age":10
}

执行结果:

每次执行版本号**_version**加一

{
  "_index" : "news",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 6,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 5,
  "_primary_term" : 1
}
2.post方式发送数据
POST news/_doc/2
{
  "username":"lisi",
  "age":19
}

执行结果:

{
  "_index" : "news",
  "_type" : "_doc",
  "_id" : "2",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 8,
  "_primary_term" : 1
}
3.查看索引文档 GET
GET news/_doc/2

执行结果:

{
  "_index" : "news",
  "_type" : "_doc",
  "_id" : "2",
  "_version" : 3,
  "_seq_no" : 10,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "username" : "lisi",
    "age" : 19
  }
}
4.更新文档 POST

可更新指定字段

POST news/_doc/1/_update
{
  "doc":{
    "username":"aaa"
  }
}

执行结果:

post的_update会有检查功能,如果执行的语句与数据没有变化时是不会更新数据而且任何版本号也不会更新.

#! Deprecation: [types removal] Specifying types in document update requests is deprecated, use the endpoint /{index}/_update/{id} instead.
{
  "_index" : "news",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 11,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 13,
  "_primary_term" : 1
}

上面执行时会有该提示

Deprecation: [types removal] Specifying types in document update requests is deprecated, use the endpoint /{index}/_update/{id} instead.

该方式也可以执行成功

POST news/_update/1
{
  "doc":{
    "username":"bbb"
  }
}
5.删除文档&索引 DELETE

ElasticSearch执行删除操作时,标记文档为 deleted状态,而不是直接物理删除。当ES存储空间不足/工作空闲时,再进行删除。
ElasticSearch执行修改操作时,ES不会真的修改Document中的数据,而是标记ES中原有的文档为deleted状态,再创建一个新的文档来存储数据。

DELETE news/_doc/2

执行结果:

{
  "_index" : "news",
  "_type" : "_doc",
  "_id" : "2",
  "_version" : 4,
  "result" : "deleted",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 14,
  "_primary_term" : 1
}

删除文档

DELETE news/

执行结果:

{
  "acknowledged" : true
}

6.批量添加数据_bulk
PUT news/_doc/_bulk
{"index":{"_id":1}}
{"username":"zhangsan1","address":"Beijing","age":1}
{"index":{"_id":2}}
{"username":"lisi","address":"Beijing aaa bbb","age":2}
{"index":{"_id":3}}
{"username":"wangwu","age":3}

执行结果

#! Deprecation: [types removal] Specifying types in bulk requests is deprecated.
{
  "took" : 53,
  "errors" : false,
  "items" : [
    {
      "index" : {
        "_index" : "news",
        "_type" : "_doc",
        "_id" : "1",
        "_version" : 5,
        "result" : "updated",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 10,
        "_primary_term" : 1,
        "status" : 200
      }
    },
    {
      "index" : {
        "_index" : "news",
        "_type" : "_doc",
        "_id" : "2",
        "_version" : 4,
        "result" : "updated",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 11,
        "_primary_term" : 1,
        "status" : 200
      }
    },
    {
      "index" : {
        "_index" : "news",
        "_type" : "_doc",
        "_id" : "3",
        "_version" : 4,
        "result" : "updated",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 12,
        "_primary_term" : 1,
        "status" : 200
      }
    }
  ]
}

4.2.Query DLS(查询领域对象语言)

1.url 检索数据语法

需选择数字之类可以排序字段

GET news/_search?q=*&sort=age:asc
2.查询所有数据
GET news/_search
{
  "query": {
    "match_all": {}
  }
}
3.查询全部数据并排序
#按年龄降序
GET news/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {   
      "age": {
        "order": "desc"
      }
    }
  ]
}
4.查询全部数据排序并分页

from类似于mysql的offset,从第from个索引数据开始取size条

GET news/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 2
}


5.区间查询
#取出第二和第三条数据
GET news/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 2,
        "lte": 3
      }
    }
  }
}
6.全文检索 match

match会针对text内容进行分词检索

GET news/_search
{
  "query": {
    "match": {
      "address": "Beijing"
    }
  }
}
7.短语匹配 match_phrase
GET news/_search
{
  "query": {
    "match_phrase": {
      "address": "Beijing aaa"
    }
  }
}
8.multi_match 多字段匹配

要查询的内容为Beijing 可以设置某几个字段是否包含该值

GET /news/_search
{
  "query": {
    "multi_match": {
      "query": "Beijing",
      "fields": ["username","address","city"]
    }
  }
}
9.bool复合查询 多个条件进行匹配查询
  • must是必须满足
  • must_not必须不满足
GET news/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "address": "Beijing"
        }},
        {"match": {
          "username": "lisi"
        }}
      ],
      "must_not": [
        {"match": {
          "age": "1"
        }}
      ]
    }
  }
}

should 条件可以满足也可以不满足,在查询中如果有满足should的条件就会增加相关性得分.

GET news/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "address": "Beijing"
        }},
        {"match": {
          "username": "lisi"
        }}
      ],
      "must_not": [
        {"match": {
           "age": "1"
        }}
      ],
      "should": [
        {"match": {
          "age": "2"
        }}
      ]
    }
  }
}
10.filter结果过滤

区间查询:

GET /news/_search
{
  "query": {
    "bool": {
      "must": [
        {"range": {
          "age": {
            "gte": 1,
            "lte": 2
          }
        }}
      ]
    }
  },"from": 0,"size":2
}
GET /news/_search
{
 "query": {
   "bool": {
    "filter": {
     "range": {
       "age": {
         "gte": 1,
         "lte": 2
        }
      }
     }
    }
  }
}

可以发现两个结果是一样的

11.term 非全文检索

对于数字型的值推荐使用term,但是如果是text进行分词检索的内容不要使用term,当使用term中进行文本内容的全量检索时term不会检索任何内容

查询内容只是为数字时 推荐使用term 进行检索 ,但是 text文本内容进行检索时不要使用term

GET /news/_search
{
  "query": {
    "term": {
      "age": {
        "value": "2"
      }
    }
  }
}
#当检索的内容非数字的类型时:不会检索到任何结果
GET /news/_search
{
  "query": {
    "term": {
      "address": {
        "value": "Beijing"
      }
    }
  }
}
12.高亮查询
#页面中高亮语法
GET /news/_search
{
  "query": {
    "match": {
      "title": "中国"
    }
  },
  "highlight": {
     "pre_tags": [
          "<b style='color:red'>"
      ],
      "post_tags": [
        "</b>"
      ],
    "fields": {
      "title": {}
    }
  }
}

4.3.Mapping映射

1.创建索引和字段映射类型
PUT news
{
  "mappings": {
    "properties": {
      "title":{"type": "text"},
      "author":{"type": "keyword"},
      "readnum":{"type": "long"}
    }
  }
}

执行结果

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "news"
}

在创建映射类型时ES会默认给字段后加入index属性并设置为true,这样就是认为该字段会进行索引也就是能够对该字段进行全文检索,如果一个字段不需进行全文检索就显示的设置为false

2.查看该索引下的字段映射类型
GET news/_mapping 
  • 在ES中会根据数据自动猜测属性的类型(mapping)

  • 同时可以在创建索引时手动的去维护创建映射的类型,Es如果是自动时 会将一些不需要进行全文检索的字段属性都映射为text

  • Es会根据索引的内容进行自动推断类型 ,给索引的数据字段设置类型

  • 当es索引类型后不能更改 映射类型 ,如果需要变更 要新的数据迁移 将原有的index删除掉 在重新导入,

  • 创建新的index设计映射类型 再去将数据进行迁移

3.新增映射字段类型

在新增字段映射类型时不能够在原有的语句上继续执行,需要额外编写新的语句

  PUT news/_mapping 
  { 
    "properties":{
      "admins":{"type":"keyword"}
    }
  } 

4.4.数据迁移

将测试数据bank/account进行设置新的映射类型,将一些不需要全文检索的字段从新设置.

put /new_news{
	"mappings":{	
		"properties":{
			将原来的mapping放进来修改
		}
	}
}

数据迁移前先需要创建一个新的索引并且修改映射类型

POST _reindex
{
  "source": {
    "index": "news"
  },
  "dest": {
    "index": "new_news"
  }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝蜂网关接入雄安新区物联网统一开放平台应用案例

蓝蜂网关接入雄安新区物联网统一开放平台案例 一、应用背景 为响应国家《河北雄安新区规划纲要》&#xff0c;由中国雄安集团数字城市科技有限公司牵头&#xff0c;以中移物联网有限公司为牵头单位的联合体&#xff0c;构建了雄安新区物联网统一开放平台&#xff08;简称雄安…

2024英语专业大学排名一览表

英语专业排名前10名的大学是&#xff1a;北京大学、北京外国语大学、上海外国语大学、黑龙江大学、上海交通大学、南京大学、浙江大学、广东外语外贸大学、清华大学、北京航空航天大学&#xff0c;以下是查大学网&#xff08;www.chadaxue.com&#xff09;整理的2024英语专业大…

AI与大模型工程师证书研修班报名啦!

人工智能大模型是指拥有超大规模参数&#xff08;通常在十亿个以上&#xff09;、超强计算资源的机器学习模型&#xff0c;能够处理海量数据&#xff0c;完成各种复杂任务&#xff0c;如自然语言处理、图像识别等。计算机硬件性能不断提升&#xff0c;深度学习算法快速优化&…

js替换对象里面的对象名称

data为数组&#xff0c;val为修改前的名称&#xff0c;name为修改后的名称 JSON.parse(JSON.stringify(data).replace(/val/g, name)) &#xff1b; 1.替换data里面的对象tenantInfoRespVO名称替换成tenantInfoUpdateReqVO 2.替换语句&#xff1a; 代码可复制 let tenantInf…

安装windows服务,细节

1、选中服务代码&#xff0c;右键添加安装程序。 2、安装程序的权限一定改为local,否则安装时会提示null错误。 3、安装服务 InstallUtil D:\vs2022work\testFW\testFW\bin\Debug\testFW.exe p:InstallUtil 需要新建环境变量才能直接使用&#xff08;找到InstallUtil 工具所在…

Softing助力工业4.0 | 通过OPC UA和MQTT访问SINUMERIK 840D CNC控制器数据

Softing uaGate 840D是用于采集西门子SINUMERIK 840D SL/PL CNC控制器数据的物联网网关&#xff0c;支持OPC UA服务器和MQTT发布功能。该网关提供对SINUMERIK 840D CNC控制器机床数据的访问&#xff0c;支持读取、处理重要的主轴和从轴数据&#xff0c;例如扭矩和功耗&#xff…

235、二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自…

今天的A股,让人惊愕了,2个耐人寻味的重要信号,有望迎来下一个超级风口!

今天的A股&#xff0c;让人惊愕了&#xff0c;你知道是为什么吗&#xff1f;盘面上出现2个耐人寻味的重要信号&#xff0c;有望迎来下一个超级风口&#xff01; 1、今天两市低开低走&#xff0c;但大消费劲头十足&#xff0c;连中免这样的大体量都涨停了&#xff0c;另外消费茅…

Rocky Linux 9 系统OpenSSH CVE-2024-6387 漏洞修复

Rocky Linux 9系统 OpenSSH CVE-2024-6387 漏洞修复 1、漏洞修复2、修复思路3、修复方案3.1、方案一3.2、方案二 4、总结5、参考 1、漏洞修复 CVE-2024-6387&#xff1a;regreSSHion&#xff1a;OpenSSH 服务器中的远程代码执行&#xff08;RCE&#xff09;&#xff0c;至少在…

电脑免费压缩软件app哪个好?Top15压缩软件良心测评,图文详解!

你是否在寻找一款能够帮助你释放电脑存储空间的免费压缩软件app呢&#xff1f;在当今数字化生活中&#xff0c;文件和媒体内容日益增多&#xff0c;而硬盘空间却总是显得不够用。优秀的压缩工具不仅能节省空间&#xff0c;还能提升系统效率&#xff0c;让你的电脑运行更加流畅。…

Linux源码阅读笔记12-RCU案例分析

在之前的文章中我们已经了解了RCU机制的原理和Linux的内核源码&#xff0c;这里我们要根据RCU机制写一个demo来展示他应该如何使用。 RCU机制的原理 RCU&#xff08;全称为Read-Copy-Update&#xff09;,它记录所有指向共享数据的指针的使用者&#xff0c;当要修改构想数据时&…

DDR3(一)

目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础&#xff0c;在学习DDR3之前&#xff0c;我们先来学习一下SDRAM的相关知识。 1 SDRAM …

公网IP变更自动微信通知与远程执行命令的C++开源软件

基本功能 智能公网IP变更监测与微信通知 一旦检测到公网IP地址发生变更&#xff0c;系统将自动通过预设的QQ邮箱&#xff08;该邮箱与微信绑定&#xff0c;实现微信通知&#xff09;发送新IP地址通知。同时&#xff0c;软件会即时更新本地配置文件中的IP地址及变更时间&#…

vscode插件的开发过程记录(一)

前言 本文是关于visual studio code软件上自定义插件的开发记录&#xff0c;将从头记录本人开发的过程&#xff0c;虽然网上也有很多文章&#xff0c;但个人在实践的过程还是会遇到不一样的问题&#xff0c;所以记录下来&#xff0c;以便于后期参考。 前期准备&#xff1a; 1、…

Xilinx FPGA:vivado实现乒乓缓存

一、项目要求 1、用两个伪双端口的RAM实现缓存 2、先写buffer1&#xff0c;再写buffer2 &#xff0c;在读buffer1的同时写buffer2&#xff0c;在读buffer2的同时写buffer1。 3、写端口50M时钟&#xff0c;写入16个8bit 的数据&#xff0c;读出时钟25M&#xff0c;读出8个16…

William Yang:从区块链先锋到艺术平台创始人

在区块链技术和加密货币市场飞速发展的今天&#xff0c;William Yang无疑是这一领域的佼佼者。他不仅在学术和媒体领域取得了显著成就&#xff0c;更在创业之路上不断探索&#xff0c;成为了业内知名的KOL&#xff08;关键意见领袖&#xff09;。今天&#xff0c;我们有幸采访到…

视频监控汇聚和融合平台的特点、功能、接入方式、应用场景

目录 一、产品概述 二、主要特点 1、多协议支持 2、高度集成与兼容性 3、高性能与可扩展性 4、智能化分析 5、安全可靠 三、功能概述 1. 视频接入与汇聚 2. 视频存储与回放 3. 实时监控与预警 4. 信息共享与联动 5. 远程管理与控制 四、接入方式 1、直接接入 2…

使用CubeIDE调试项目现stm32 no source available for “main() at 0x800337c:

使用CubeIDE调试项目现stm32 no source available for "main() at 0x800337c&#xff1a; 问题描述 使用CubeIDE编译工程代码和下载都没有任何问题&#xff0c;点击Debug调试工程时&#xff0c;出现stm32 no source available for "main() at 0x800337c 原因分析&a…

[leetcode hot 150]第四百五十二题,用最少数量的箭引爆气球

题目&#xff1a; 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。…

快速入门FreeRTOS心得(正点原子学习版)

对于FreeROTS&#xff0c;我第一反应想到的就是通信里的TDM&#xff08;时分多址&#xff09;。不同任务给予分配不同的时间间隔&#xff0c;也就是任务之间在每个timeslot都在来回切换。 这里有重要的一点&#xff0c;就是中断要短小&#xff0c;优先级是自高到底进行打断。 …