ES-极客学习第二部分ES 入门

news2024/9/24 17:16:41

基本概念 索引、文档、节点、分片和API

在这里插入图片描述

json 文档

在这里插入图片描述

文档的元数据

在这里插入图片描述

需要通过Kibana导入Sample Data的电商数据。具体参考“2.2节-Kibana的安装与界面快速浏览”

索引

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

kibana 管理ES索引

在这里插入图片描述
在系统中找到kibana配置文件(我这里是etc/kibana/kibana.yml)

vim /etc/kibana/kibana.yml

#在配置文件中加入以下代码即可设置kibanan的中文界面

这块可以进行索引管理,查看索引的

在这里插入图片描述
在这里插入图片描述

kibana的开发工使用-索引

在这里插入图片描述
需要通过Kibana导入Sample Data的电商数据。具体参考“2.2节-Kibana的安装与界面快速浏览”

笔记

Index 相关 API

#查看索引相关信息
GET kibana_sample_data_ecommerce

#查看索引的文档总数
GET kibana_sample_data_ecommerce/_count

#查看前10条文档,了解文档格式
POST kibana_sample_data_ecommerce/_search
{
}

#_cat indices API
#查看indices
GET /_cat/indices/kibana*?v&s=index

#查看状态为绿的索引
GET /_cat/indices?v&health=green

#按照文档个数排序
GET /_cat/indices?v&s=docs.count:desc

#查看具体的字段
GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt

#How much memory is used per index?
GET /_cat/indices?v&h=i,tm&s=tm:desc

为什么不再支持单个Index下,多个Tyeps https://www.elastic.co/cn/blog/moving-from-types-to-typeless-apis-in-elasticsearch-7-0

基本概念 - 节点、集群、副本、分片

在这里插入图片描述

节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分片

在这里插入图片描述

分片和副本分散数据的关系

在这里插入图片描述
blog 索引 number_of_shards :主分片数设置成3 number_ofreplicas: 副本数 设置成1

在这里插入图片描述

在这里插入图片描述

Kibana 和Cerebro管理ES集群

在这里插入图片描述

在这里插入图片描述
command+/ 跳到官方的API说明

在这里插入图片描述

Mapping中的字段一旦设定后,禁止直接修改。因为倒排索引生成后不允许直接修改。需要重新建立新的索引,做reindex操作。

类似数据库中的表结构定义,主要作用

  • 定义所以下的字段名字
  • 定义字段的类型
  • 定义倒排索引相关的配置(是否被索引?采用的Analyzer)
  • 对新增字段的处理 true false strict

在object下,支持做dynamic的属性的定义

课程Demo

#写入文档,查看 Mapping
PUT mapping_test/_doc/1
{
  "firstName":"Chan",
  "lastName": "Jackie",
  "loginDate":"2018-07-24T10:29:48.103Z"
}

#查看 Mapping文件
GET mapping_test/_mapping


#Delete index
DELETE mapping_test

#dynamic mapping,推断字段的类型
PUT mapping_test/_doc/1
{
    "uid" : "123",
    "isVip" : false,
    "isAdmin": "true",
    "age":19,
    "heigh":180
}

#查看 Dynamic
GET mapping_test/_mapping


#默认Mapping支持dynamic,写入的文档中加入新的字段
PUT dynamic_mapping_test/_doc/1
{
  "newField":"someValue"
}

#该字段可以被搜索,数据也在_source中出现
POST dynamic_mapping_test/_search
{
  "query":{
    "match":{
      "newField":"someValue"
    }
  }
}


#修改为dynamic false
PUT dynamic_mapping_test/_mapping
{
  "dynamic": false
}

#新增 anotherField
PUT dynamic_mapping_test/_doc/10
{
  "anotherField":"someValue"
}


#该字段不可以被搜索,因为dynamic已经被设置为false
POST dynamic_mapping_test/_search
{
  "query":{
    "match":{
      "anotherField":"someValue"
    }
  }
}

get dynamic_mapping_test/_doc/10

#修改为strict
PUT dynamic_mapping_test/_mapping
{
  "dynamic": "strict"
}



#写入数据出错,HTTP Code 400
PUT dynamic_mapping_test/_doc/12
{
  "lastField":"value"
}

DELETE dynamic_mapping_test

文档的CRUD与文档的基本操作

在这里插入图片描述
格式 索引名称/_doc/索引id

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

倒排索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
课程Demo

POST _analyze
{
  "analyzer": "standard",
  "text": "Mastering Elasticsearch"
}

POST _analyze
{
  "analyzer": "standard",
  "text": "Elasticsearch Server"
}

POST _analyze
{
  "analyzer": "standard",
  "text": "Elasticsearch Essentials"
}

通过Analyzer 进行分词

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用分析器进行分词

课程Demo

#Simple Analyzer – 按照非字母切分(符号被过滤),小写处理
#Stop Analyzer – 小写处理,停用词过滤(the,a,is)
#Whitespace Analyzer – 按照空格切分,不转小写
#Keyword Analyzer – 不分词,直接将输入当作输出
#Patter Analyzer – 正则表达式,默认 \W+ (非字符分隔)
#Language – 提供了30多种常见语言的分词器
#2 running Quick brown-foxes leap over lazy dogs in the summer evening

查看不同的analyzer的效果

#standard
GET _analyze
{
  "analyzer": "standard",
  "text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}

#simpe
GET _analyze
{
  "analyzer": "simple",
  "text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}


GET _analyze
{
  "analyzer": "stop",
  "text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}


#stop
GET _analyze
{
  "analyzer": "whitespace",
  "text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}

#keyword
GET _analyze
{
  "analyzer": "keyword",
  "text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}

GET _analyze
{
  "analyzer": "pattern",
  "text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}


#english
GET _analyze
{
  "analyzer": "english",
  "text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}


POST _analyze
{
  "analyzer": "icu_analyzer",
  "text": "他说的确实在理”"
}


POST _analyze
{
  "analyzer": "standard",
  "text": "他说的确实在理”"
}


POST _analyze
{
  "analyzer": "icu_analyzer",
  "text": "这个苹果不大好吃"
}

SearchAPI概览

在这里插入图片描述
在这里插入图片描述

URL 查询

在这里插入图片描述

Request Body 查询

在这里插入图片描述
查询响应结果
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要通过Kibana导入Sample Data的电商数据。 具体参考“2.2节-Kibana的安装与界面快速浏览”一节教程

#URI Query
GET kibana_sample_data_ecommerce/_search?q=customer_first_name:Eddie
GET kibana*/_search?q=customer_first_name:Eddie
GET /_all/_search?q=customer_first_name:Eddie


#REQUEST Body
POST kibana_sample_data_ecommerce/_search
{
	"profile": true,
	"query": {
		"match_all": {}
	}
}

URI Search详解

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
指定df 字段 会对查询字段进行查询,不指定df 字段会对查询的全文进行检索,包括字段和值,符合的都会被查询出来。query 中的 profile 会显示检索的详情

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

GET /goods/_doc/_search?q=name:dior222
GET /goods/_doc/_search?q=name:chengyi
GET /goods/_doc/_search?q=name:dior222


GET /goods/_doc/_search?q=name:222

GET /goods/_doc/_search?q=name:(chengyi dior222)

在这里插入图片描述
在这里插入图片描述

%2B 代表+
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
代表相对位置 ~2 代表相隔 两个位置出现 ,不加~2 代表必须要在相隔的位置出现

在这里插入图片描述

课程Demo

#基本查询
GET /movies/_search?q=2012&df=title&sort=year:desc&from=0&size=10&timeout=1s

#带profile
GET /movies/_search?q=2012&df=title
{
	"profile":"true"
}


#泛查询,正对_all,所有字段
GET /movies/_search?q=2012
{
	"profile":"true"
}

#指定字段
GET /movies/_search?q=title:2012&sort=year:desc&from=0&size=10&timeout=1s
{
	"profile":"true"
}


# 查找美丽心灵, Mind为泛查询
GET /movies/_search?q=title:Beautiful Mind
{
	"profile":"true"
}

# 泛查询
GET /movies/_search?q=title:2012
{
	"profile":"true"
}

#使用引号,Phrase查询
GET /movies/_search?q=title:"Beautiful Mind"
{
	"profile":"true"
}

#分组,Bool查询
GET /movies/_search?q=title:(Beautiful Mind)
{
	"profile":"true"
}


#布尔操作符
# 查找美丽心灵
GET /movies/_search?q=title:(Beautiful AND Mind)
{
	"profile":"true"
}

# 查找美丽心灵
GET /movies/_search?q=title:(Beautiful NOT Mind)
{
	"profile":"true"
}

# 查找美丽心灵
GET /movies/_search?q=title:(Beautiful %2BMind)
{
	"profile":"true"
}


#范围查询 ,区间写法
GET /movies/_search?q=title:beautiful AND year:[2002 TO 2018%7D
{
	"profile":"true"
}


#通配符查询
GET /movies/_search?q=title:b*
{
	"profile":"true"
}

//模糊匹配&近似度匹配
GET /movies/_search?q=title:beautifl~1
{
	"profile":"true"
}

GET /movies/_search?q=title:"Lord Rings"~2
{
	"profile":"true"
}

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

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

相关文章

LabVIEW编码器自动校准系统

简介 在工作中,精确的角度测量和校准对于保持设备精度至关重要。开发了一套自动化角度编码器校准系统,利用了LabVIEW的强大功能。该系统以全圆连续角度标准装置为基础,配合二维导轨装夹系统,实现了空心轴角度编码器的高效自动校…

[易语言]使用易语言部署工业级人脸检测模型

【框架地址】 https://github.com/ShiqiYu/libfacedetection 【算法介绍】 Libfacedetection是一个开源的计算机视觉库,主要用于实时的人脸检测。它利用深度学习技术,特别是卷积神经网络(CNN),实现了高精度的脸部定位…

Excel学习

文章目录 学习链接Excel1. Excel的两种形式2. 常见excel操作工具3.POI1. POI的概述2. POI的应用场景3. 使用1.使用POI创建excel2.创建单元格写入内容3.单元格样式处理4.插入图片5.读取excel并解析图解POI 4. 基于模板输出POI报表5. 自定义POI导出工具类ExcelAttributeExcelExpo…

RibbonGroup添加QCheckBox

RibbonGroup添加 QCheckBox: QCheckBox* pCheck new QCheckBox(tr("Check")); pCheck->setToolTip(tr("Check")); groupClipboard->addWidget(pCheck); connect(pCheck, SIGNAL(stateChanged(int)), this, SLOT(checkClick(int))); …

章鱼网络 2023 年全回顾|暨12月进展报告

2023年,章鱼网络轻装上阵,身处加密行业的低谷中砥砺前行。 12月17日,经过整整1年时间的开发和打磨,章鱼网络在重磅上线 Octopus 2.0,即 $NEAR Restaking 和 NEAR-IBC,获得了社区和市场的一致认可&#xff…

供排水管网管理信息化的必要性

供排水管网是城市供水系统的大动脉,它负担者将优质水源输送到最终用户的重要职责,对供水系统有着极其重要的作用。城市供排水管网埋设在地下,规模庞大,仅靠人工难以管理。同时,由于城市的发展,管网连接结构…

Camtasia2024屏幕录像和视频编辑软件

做网络教学视频,开发微课程,用得最多的就是录屏视频编辑,而在这类软件中我只推荐Camtasia Studio。随着Camtasia Studio的更新,其功能越来越完善,用户界面越来越友好,除了安装更加简单,汉化只需…

设置了uni.chooseLocation,小程序中打不开

设置了uni.chooseLocation,在小程序打不开,点击没反应,地图显现不出来; 解决方案: 1.Hbuilder——微信开发者工具路径没有配置 打开工具——>设置 2.微信小程序服务端口没有开 解决方法:打开微信开发…

苹果手机怎么还原删除的照片?这3个方法教你快速还原!

苹果手机用户在误删照片后,可能会感到非常焦虑。并且手机照片丢失对我们生活和工作都可能带来诸多不便。 但是,大家不必过于担心,仍有一些方法可以帮助我们找回这些误删的照片。苹果手机怎么还原删除的照片?本文将为大家介绍3种简…

九州金榜|临近春节,孩子要做什么更有意义?

元旦刚过,奔向除夕的脚步便越走越快了,转眼间,又来到了一年的末尾。 孩子们也都开始了新一轮的寒假,但是大街小巷中还是冷冷清清。 在和朋友们聊天时,他们也纷纷感叹:现在的孩子,不像我们这一…

python 计数器

这个Python脚本定义了一个名为new_counter()的函数,它读取系统时间并将其与存储在文件中的时间进行比较。然后根据比较结果更新存储在另一个文件中的计数器值。如果系统时间与存储的时间匹配,则计数器值增加1。如果系统时间与存储的时间不匹配&#xff0…

QMenuBar和QACtion的使用

1. 主界面:QMainWindow 包含了菜单栏、工具栏、状态栏以及工作区等功能 菜单栏:使用QMenuBar类管理,管理菜单栏中的菜单或者执行动作 执行动作:QAction类管理 工具栏:使用QToolBar类管理 状态栏:使用QStatu…

电脑扩容升级硬盘选1T还是2T

SSD固态有必要升级2TB吗?----------吴中函 某大二学生用的一台笔记本电脑,512GB的硬盘空间已经严重不够用了,想给笔记本扩容升级一下硬盘; 这位学生是学设计专业的、平时也喜欢摄影、电脑里面也装了一些游戏,经常整理、…

vue v-for循环拖拽排序,实现数组选中的数据拖拽后对应的子数据也进行重新排序

如下图所有,有个需求更新, 实现拖拽。 1,当新增了测点类型的时候每个对应的回路子数据都会新增对应的测点类型。 2,当拖动测点类型结束的时候对应的回路里面的内容也会跟着测点类型的排序自动排序 其实很简单,只要会了…

高效办公:在文件夹名称左边插入关键字,提高文件管理效率

在繁忙的工作环境中,经常要处理大量的文件和文件夹。有效的文件管理是一个挑战,大量的文件和文件夹难以找到所需的资料。下面一起来看云炫文件管理器如何在文件夹名称左边批量插入关键字。 文件夹名称左边添加关键字前后对比图。 文件夹名称左边批量插…

智能分析网关V4:搭建智慧幼儿园视频AI智能监管方案

一、背景需求 随着科技的日新月异,智慧化监管在幼儿园管理领域的应用已成为不可逆转的趋势。在传统的幼儿园管理模式中,校园安全管理往往依赖于人工查看监控,难以及时发现安全隐患。智慧幼儿园监管解决方案通过引入物联网、大数据、人工智能…

【AI的未来 - AI Agent系列】【MetaGPT】1. AI Agent如何重构世界

上篇文章我们跑起来了第一个MetaGPT程序。本文主要学习了一下理论,什么是智能体,以及智能体如何重构世界。 0. 什么是智能体 智能体 LLM观察思考行动记忆 多智能体 智能体环境SOP评审路由订阅经济 用人话说,我理解的Agent: 智…

vue前端开发自学,插槽练习第二次,name属性的使用

vue前端开发自学,插槽练习第二次,name属性的使用!可以使用name属性,来自定义一个名字,这样,就可以在一个组件内同时出现多个插槽的内容了。在子组件内接收的时候,很简答,只需要在slot标签里面加上name“mz”&#xff1…

物理机本地和集群部署Spark

一、单机本地部署 1)官网地址:http://spark.apache.org/ 2)文档查看地址:https://spark.apache.org/docs/3.1.3/ 3)下载地址: https://spark.apache.org/downloads.html https://archive.apache.org/dist/…

Spring Boot - Application Events 的发布顺序_ApplicationFailedEvent

文章目录 Pre概述Code源码分析 Pre Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent 概述 Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦&#…