zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Elasticsearch笔记(集群插件、kibana、什么是倒排索引)

2023-03-07 09:16:28 时间

Elasticsearch 中的集群、节点、索引、文档、类型

  • 集群是一个或多个节点(服务器)的集合,它们共同保存您的整个数据,并提供跨所有节点的联合索 引和搜索功能。群集由唯一名称标识,默认情况下为“elasticsearch”。此名称很重要,因为如果节点设置为按名称加入群集,则该节点只能是群集的一部分。
  • 节点是属于集群一部分的单个服务器。它存储数据并参与群集索引和搜索功能。
  • 索引就像关系数据库中的“数据库”。它有一个定义多种类型的映射。索引是逻辑名称空间,映射到一 个或多个主分片,并且可以有零个或多个副本分片。 MySQL =>数据库 Elasticsearch =>索引
  • 文档类似于关系数据库中的一行。不同之处在于索引中的每个文档可以具有不同的结构(字段),但 是对于通用字段应该具有相同的数据类型。 MySQL => Databases => Tables => Columns / Rows Elasticsearch => Indices => Types =>具有属性的文档
  • 类型是索引的逻辑类别/分区,其语义完全取决于用户。

什么是倒排索引

一切设计都是为了提高搜索的性能

倒排索引(Inverted Index)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key

倒排索引是搜索引擎的核心。搜索引擎的主要目标是在查找发生搜索条件的文档时提供快速搜索。ES

中的倒排索引其实就是 lucene 的倒排索引,区别于传统的正向索引,倒排索引会再存储数据时将关键词和数据进行关联,保存到倒排表中,然后查询时,将查询内容进行分词后在倒排表中进行查询,最后匹配数据即可.

假设有这么几条数据

ID

Name

Age

Sex

1

Kate

24

Female

2

John

24

Male

3

Bill

29

Male

ID是Elasticsearch自建的文档id,那么Elasticsearch建立的索引如下:

Name:

Term

Posting List

Kate

1

John

2

Bill

3

Age:

Term

Posting List

24

[1,2]

29

3

Sex:

Term

Posting List

Female

1

Male

[2,3]

Posting List Elasticsearch分别为每个field都建立了一个倒排索引,Kate, John, 24, Female这些叫term,而[1,2]就是Posting List。Posting list就是一个int的数组,存储了所有符合某个term的文档id。

通过posting list这种索引方式似乎可以很快进行查找,比如要找age=24的同学,爱回答问题的小明马上就举手回答:我知道,id是1,2的同学。

elasticsearch-head chrome插件安装

elasticsearch-head是一个用于浏览Elastic Search集群并与之交互的 Web 前端。

下载,也可通过谷歌商城直接下载

安装好后点开插件

kibana安装

Kibana 是一个免费且开放的用户界面,能够让你对 Elasticsearch 数据进行可视化,并 让你在 Elastic Stack 中进行导航。你可以进行各种操作,从跟踪查询负载,到理解请求如 何流经你的整个应用,都能轻松完成。

下载

修改config/kibana.yml文件

# 默认端口
server.port: 5601
# ES 服务器的地址
elasticsearch.hosts: ["http://localhost:9200"]
# 索引名
kibana.index: ".kibana"
# 支持中文
i18n.locale: "zh-CN"

Windows 环境下执行 bin/kibana.bat 文件

最后:通过浏览器访问 : http://localhost:5601

可以通过控制台跳过 cURL 并使用此 JSON 接口直接处理数据。

参考: https://www.cnblogs.com/sha0830/p/8000242.html https://www.bilibili.com/video/BV1hh411D7sb?p=61 https://blog.csdn.net/u011863024/article/details/115721328