ElasticSearch 数据结构


索引

正排索引
倒排索引(ElasticSearch使用)

数据结构

Elasticsearch 使用一种称为倒排索引的数据结构,它支持非常快速的全文搜索。
倒排索引列出了出现在任何文档中的每个唯一单词,并标识了每个单词出现的所有文档。

与MySQL类比

Elasticsearch 类似于数据库(MySQL)
数据结构
ES里的 Index 可以看做一个库,而 Types 相当于表, Documents 则相当于表的行。这里Types 的概念已经被逐渐弱化, Elasticsearch 6.X 中,一个 index 下已经只能包含一个type Elasticsearch 7.X 中 , Type 的概念已经被删除了。

无模式

Elasticsearch 还具有无模式的能力,这意味着无需明确指定如何处理文档中可能出现的每个不同字段即可对文档进行索引。
启用动态映射后,Elasticsearch 会自动检测新字段并将其添加到索引中。这种默认行为使索引和探索数据变得容易——只需开始索引文档,Elasticsearch 就会检测并将布尔值、浮点和整数值、日期和字符串映射到适当的 Elasticsearch 数据类型。

索引(Index)

索引是具有某些类似特征的文档集合。
例如,可以给客户数据建立一个索引,给产品目录建立另一个索引或给订单数据的建立一个索引。
索引有一个名称标识(必须全部小写),此名称用于在对其中的文档执行索引,搜索,更新和删除操作时引用索引所用。
在单个集群中,您可以根据需要定义任意数量的索引

索引可以被认为是文档的优化集合,每个文档都是字段的集合,字段是包含数据的键值对。默认情况下,Elasticsearch 索引每个字段中的所有数据,并且每个索引字段都有一个专用的优化数据结构。例如,文本字段存储在倒排索引中,而数字和地理字段存储在 BKD 树中。使用每个字段的数据结构来组装和返回搜索结果的能力是 Elasticsearch 如此快速的原因。

类型(Type)

type是一个逻辑意义上的分类或者叫分区,允许在同一索引中建立多个type。本质是相当于一个过滤条件,高版本将会废弃type概念。

文档(Document)

JSON数据,多个键值对
文档是可以编制索引的基本信息单元。例如,您可以为单个客户提供文档,为单个产品提供另一个文档,为单个订单提供另一个文档。该文档以JSON(JavaScript Object Notation)表示,JSON是一种普遍存在的互联网数据交换格式。

在索引/类型中,可以根据需要存储任意数量的文档。

值得注意的是,尽管文档实际上驻留在索引中,但实际上必须将文档分配给索引中的一个类型(type)中。

映射字段

JSON数据中的一对键值
定义规则来控制动态映射并显式定义映射以完全控制字段的存储和索引方式。

定义自己的映射使您能够:
区分全文字符串字段和精确值字符串字段
执行特定语言的文本分析
优化字段以进行部分匹配
使用自定义日期格式
将字符串字段索引为用于全文搜索的文本字段和用于排序或聚合数据的关键字字段。
使用多个语言分析器来处理包含用户输入的字符串字段的内容。

根据业务搭建数据结构

关注方向:

  1. 分词:
  • 作用: 把查询的内容(分词),当作索引进行使用,可以加快查询使用
  • 技术: IK分词器,把新华字典里有的词作为一个词;自定义分词:手动录入,es中有个dic文件,将新增的分词录入到这个文件,es会自动进行加载
  • 例如:商品名称
  1. 哪些字段进行过滤
    平台属性值
    分类Id
  2. 哪些字段我们需要通过搜索查询出来。
    商品名称,价格,图片等。

结构化查询

结构化查询类似于您可以在 SQL 中构造的查询类型。例如,您可以搜索索引中的genderandage字段并按字段employee对匹配项进行排序hire_date。

全文查询

全文查询查找与查询字符串匹配的所有文档,并按相关性排序返回它们——它们与您的搜索词的匹配程度。

复杂查询

将结构化查询与全文查询结合的复杂查询。

聚合查询

Elasticsearch 聚合能构建复杂的数据摘要,并深入了解关键指标、模式和趋势。
聚合利用了用于搜索的相同数据结构,能够实时分析和可视化数据
聚合与搜索请求一起运行。可以在单个请求中同时对相同数据进行搜索、过滤结果和执行分析

机器学习

自动分析时间序列数据?
可以使用机器学习功能在数据中创建准确的正常行为基线并识别异常模式。通过机器学习,可以检测:
与值、计数或频率的时间偏差相关的异常
统计稀有性
群体成员的异常行为


文章作者: zrh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zrh !
  目录