002 使用kibana操作ElasticSearch7.x

news2024/11/16 1:42:13

文章目录

    • 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 非全文检索
      • 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"
      }
    }
  }
}

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

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

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

相关文章

面试-java异常体系

1.java异常体系 error类是指与jvm相关的问题。如系统崩溃,虚拟机错误,内存空间不足。 非runtime异常不处理,程序就没有办法执行。 一旦遇到异常抛出,后面的异常就不会进行。 (1)常见的error以及exception 2.java异常要点分析…

安全感爆棚,锁定六氟化硫SF6气体泄漏报警监测系统

一、概述 六氟化硫SF6气体已有百年历史,它是法国两位化学家Moissan和Lebeau于1900年合成的人造惰性气体, 1947年提供商用。当前SF6气体主要用于电力工业中。化学性质稳定。微溶于水、醇及醚,可溶于氢氧化钾。不与氢氧化钠、液氨、盐酸及水起…

【Knowledge Graph Context-Enhanced Diversified Recommendation(MSDM2024)】

Knowledge Graph Context-Enhanced Diversified Recommendation 摘要 推荐系统(RecSys)领域已被广泛研究,以通过利用用户的历史交互来提高准确性。 尽管如此,这种对准确性的持续追求常常导致多样性的减少,最终导致众所…

阿里Qwen-2成全球开源大模型排行榜第一,中国处于领导地位。

6月27日凌晨,全球著名开源平台huggingface(笑脸)的联合创始人兼首席执行官Clem在社交平台宣布,阿里最新开源的Qwen2-72B指令微调版本,成为开源模型排行榜第一名。 他表示,为了提供全新的开源大模型排行榜…

KubeCon 香港:移动云与云猿生联合议题《在没有专用 Operator 的情况下管理数据库集群》

KubeCon CloudNativeCon 开源峰会 AI_dev 中国大会将于 2024 年 8 月 21 日至 23 日在香港举行。来自全球的云原生技术专家与爱好者在这里相会,探讨云原生领域的技术创新与最佳实践。此外,本次 KubeCon CloudNativeCon 和开源峰会将与 AI_dev&#x…

使用ESP32开发一款chat机器人

目的:使用语音对话的方式实现和ai机器人对话,核心硬件如下 主板: ESP32S3 语音(拾音器-麦克风):INMP441全向麦克风模块 购买记录: https://oshwhub.com/shukkkk/esp32s3_tft_mp3

隧道管廊人员定位系统的应用与发展

随着城市建设的不断发展,地下管廊和隧道工程的规模和数量也在快速增长。隧道工程处于复杂、封闭的环境中,人员的安全管理成为一项重要任务。隧道管廊人员定位系统作为一种先进的技术手段,可以实时追踪人员位置,提供实时监控和安全…

clip系列改进Lseg、 group ViT、ViLD、Glip

Lseg 在clip后面加一个分割head,然后用分割数据集有监督训练。textencoder使用clip,frozen住。 group ViT 与Lseg不同,借鉴了clip做了真正的无监督学习。 具体的通过group block来做的。使用学习的N个group token(可以理解为聚类…

数字社交的领航者:解析Facebook的引领作用

在当今数字化社会中,社交网络已经成为了人们日常生活不可或缺的一部分。而在众多社交平台中,Facebook凭借其巨大的用户基础和创新的技术应用,被公认为数字社交领域的领航者之一。本文将深入解析Facebook在数字社交中的引领作用,探…

Eclipse代码编辑器自主配色

1. 打开 Eclipse 的设置 - Java - Editor - Syntax Coloring 2. 自定义各种类型的颜色,例如: 1. Interface 勾选,设置为紫色 2. Class 勾选,设置为淡蓝色 3. Abstract classes 勾选,有自己默认的颜色 …

Web渗透:文件包含漏洞(part.1)

"文件包含漏洞"(File Inclusion Vulnerability)是一种常见的Web应用程序漏洞,攻击者可以通过这个漏洞在目标系统上包含或执行任意文件。主要有两种类型的文件包含漏洞: 本地文件包含(Local File Inclusion, …

Django(根据Models中模型类反向生成数据库表)—— python篇

一、数据库的配置 1、 django默认支持 sqlite,mysql, oracle,postgresql数据库。 sqlite:django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 , 引擎名称:django.db.backends.sqlite3 mysql:引擎名称&#xff…

克服指标管理痛点,实现数据价值最大化

在当下的企业管理中,由于数据量的激增,管理方式逐渐从基于经验转向基于数据。在此过程中,我们能够通过数据探查业务情况、分析数据,从而获取更优的决策支持数据。这通常通过数据报表或分析平台来实现,对于临时性场景&a…

基于YOLOv10的车辆统计跟踪与车速计算应用

文章目录 1、前言2、安装运行环境3、下载v10s模型4、代码实现5、代码详读5.1、导入必要的库5.2、识别车辆5.3、读取视频文件5.4、创建视频写入器5.5、车速计算5.6、统计车辆5.7、应用跟踪5.8、视频处理 6、目标检测系列文章 1、前言 在智能交通系统(ITS&#xff09…

Does a vector database maintain pre-vector chunked data for RAG systems?

题意:一个向量数据库是否为RAG系统维护预向量化分块数据? 问题背景: I believe that when using an LLM with a Retrieval-Augmented Generation (RAG) approach, the results retrieved from a vector search must ultimately be presented…

提升用户转化率秘诀!Xinstall的H5拉起应用技术让您领先一步!

在移动互联网时代,App的推广和运营面临着诸多挑战。其中,H5页面如何高效、便捷地拉起应用,成为了一个亟待解决的问题。今天,我们就来谈谈如何利用Xinstall品牌,轻松解决这一痛点,提升用户体验,助…

ONLYOFFICE桌面编辑器8.1:办公体验新升级

引入 当今时代办公三件套已经成为我们日常生活中不可或缺的一部分了,但是说到办公软件不知道大家会首先想到那些产品 office 亦或是 WPS。最近也发布了 8.1 新版本,更新了一些新功能今天我们就来评测评测。 文章目录 引入一、ONLYOFFICE 是什么&#xff…

java基于ssm+jsp 仓库智能仓储系统

1管理员功能模块 管理员登录,通过填写用户名、密码等信息,输入完成后选择登录即可进入智能仓储系统 ,如图1所示。 图1管理员登录界面图 智能仓储系统 ,在智能仓储系统可以查看个人中心、公告信息管理、员工管理、供应商管理、商…

大模型技术的应用场景

大模型技术(Large Language Model,LLM)是指具有大量参数和训练数据的神经网络模型,它能够学习语言的统计规律,并生成与人类书写的文本相似的文本。大模型技术在近年来取得了重大进展,并开始在各种领域得到应…

reactjs18 中使用@reduxjs/toolkit同步异步数据的使用

react18 中使用@reduxjs/toolkit 1.安装依赖包 yarn add @reduxjs/toolkit react-redux2.创建 store 根目录下面创建 store 文件夹,然后创建 index.js 文件。 import {configureStore } from "@reduxjs/toolkit"; import {counterReducer } from "./feature…