重生之我们在ES顶端相遇第15 章 - ES 的心脏-倒排索引

文章目录

前言

上一章,简单介绍了 ES 的节点类型。

本章,我们要介绍 ES 中非常重要的一个概念:倒排索引。

ES 的全文索引就是基于倒排索引实现的。

本章内容建议重点学习,因为面试也常问。

为什么叫倒排索引

倒排索引指的是将每一个关键字映射到它出现的文档中。如下图所示

因为结构是倒着的,因此被称为倒排索引。

数据结构

倒排索引分为 2 部分:一部分叫 term directory(term 词典),一部分叫 posting list(倒排列表)。如下图所示

  • term directory

    term 字典,存放着每个单词到对应倒排列表的映射关系

  • posting list

    Docs 是一个数组。其中 1:2:2,6 意思如下

    • 1:文档ID
    • 2:词频(term frequency)
    • 2,6:出现在文档中的第 2,6 个 term。

如何生成

这里涉及到我们之前讲过的分词器。工作流程如下图所示

大体就包含2部分,根据分词器将文本分词,然后根据分词生成倒排索引。

如何查询

例如我们查询:To do right

则该文本会先被分词为:to, do, right

对应的结果如下图所示:

TF、IDF

默认情况下,ES 会根据文档与搜索词的相关性得分对结果降序返回。相关性得分与以下 2 个概念有关(稍做了解,后续会出文章做更深入的介绍)

  • Term Frequency(TF):term 在文档中出现的频率,得分正相关。出现频率越高,得分越高
  • Inverted Document Frequency(IDF):term 在 所有文档 中出现的频率,得分负相关。出现频率越高,得分越低。

参考文档

Indexing: Inverted Index

相关推荐
Java患者·4 小时前
Spring Boot 3 整合 Elasticsearch 8
spring boot·后端·elasticsearch
可乐ea4 小时前
【知识获取与分享社区项目 | 项目日记第 20 天】search_after 游标分页:解决 Elasticsearch 深分页稳定性问题
java·大数据·elasticsearch·搜索引擎·全文检索
徐小青青啊5 小时前
es集群不中断实时数据更新损坏节点硬盘
大数据·elasticsearch·搜索引擎·es
2601_961194026 小时前
考研模拟卷谁的比较好|27李林合工大肖四肖八数学英语408PDF
考研·elasticsearch·全文检索·代理模式·lucene·桥接模式·访问者模式
Elastic 中国社区官方博客6 小时前
Elasticsearch Reindex 现已支持跨节点自动迁移:无需人工干预,不会丢失进度
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
努力攻坚操作系统6 小时前
Elasticsearch 完全教学指南:从入门到精通
大数据·数据库·elasticsearch·搜索引擎·全文检索
Elasticsearch1 天前
Elasticsearch Reindex 现已支持跨节点自动迁移:无需人工干预,不会丢失进度
elasticsearch
星辰_mya1 天前
数据同步的几种姿势
大数据·elasticsearch·搜索引擎
曾阿伦1 天前
Elasticsearch Analyzer 分析器开发指南
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客1 天前
使用 Jina CLIP v2 和 Elasticsearch 实现多语言图片搜索
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·jina