ES搜索原理

ES搜索原理

bg: 搜索的时候,使用模糊查询经常出现搜索不到的情况,不如mysql的like有效。

https://www.bilibili.com/video/BV1yb421J7oX/?spm_id_from=333.337.search-card.all.click&vd_source=3f917722acc36b0fcca7cca2d21394e2

基础概念

  • 索引(Index):相当于关系型数据库中的数据库,是一个拥有相似特征的文档的集合。例如,可以为客户数据、商品目录、订单数据等分别建立不同的索引12.
  • 文档(Document):是可以被索引的基本信息单元,以 JSON 格式表示,类似于关系型数据库中的一行数据。一个文档可以包含多个字段,每个字段有其对应的值,如一篇文章、一个用户信息等都可以作为一个文档存储在 ES 中12.
  • 字段(Field):组成文档的最小单位,相当于关系型数据库中的一列数据23.
  • 映射(Mapping):用来定义一个文档以及其所包含的字段如何被存储和索引,包括定义字段的名称、类型,以及所使用的分词器等,类似于关系型数据库中的 Schema23.
  • 分片(Shards):由于数据量可能很大,一个索引会被分成多个分片来存储在不同的节点上,以实现水平扩展和分布式存储,每个分片可以是单个节点的一部分,也可以跨越多个节点。每个分片包含一部分数据,并且每个分片都有一个主分片和一个或多个复制分片,主分片负责处理写入操作,而复制分片用于容错和读取操作13.

倒排索引(反向索引)搜索原理

倒排索引的构建过程
文档预处理阶段
  • 分词(Tokenization): 将文档拆分成单词或词汇单元。这个过程使用分词器,将文本切分成有意义的词语,形成一个词汇列表。
  • 去停用词(Stopword Removal): 移除常见且在搜索中没有实际意义的词语,如"的"、"是"等。这有助于提高倒排索引的效率和准确性。
  • 词干提取(Stemming): 将词语还原为其词干形式,去除词尾,以便将相关的词汇映射到同一词根,减少索引的大小。
倒排生成阶段
  • 建立词汇表: 将预处理后的文档中的所有唯一词语构建成一个词汇表。每个词汇都有一个唯一的标识符。+ 建立词汇表: 将预处理后的文档中的所有唯一词语构建成一个词汇表。每个词汇都有一个唯一的标识符。
  • 映射关键词到文档ID: 遍历每个文档,对于文档中的每个关键词,将其映射到文档的唯一标识符(文档ID)。这样的映射关系通常以字典的形式保存。+ 映射关键词到文档ID: 遍历每个文档,对于文档中的每个关键词,将其映射到文档的唯一标识符(文档ID)。这样的映射关系通常以字典的形式保存。
  • 生成倒排列表: 对于每个关键词,创建一个倒排列表,其中包含映射到该关键词的所有文档ID。倒排列表实际上是一个映射,将关键词与包含该关键词的文档关联起来。+ 生成倒排列表: 对于每个关键词,创建一个倒排列表,其中包含映射到该关键词的所有文档ID。倒排列表实际上是一个映射,将关键词与包含该关键词的文档关联起来。
检索过程分析

搜索引擎的检索过程是通过倒排索引来实现的,这个过程可以分为几个关键步骤,让我们逐步解析搜索引擎如何利用倒排索引进行检索,并强调倒排索引在快速定位相关文档方面的高效性。

1. 用户查询输入:

  • 用户在搜索引擎中输入关键词或查询短语,希望找到相关的文档。

2. 关键词分析:

  • 搜索引擎对用户输入的查询进行关键词分析,进行类似于文档预处理的步骤,包括分词、去停用词、词干提取等。

3. 查询到关键词的倒排列表:

  • 对于每个关键词,搜索引擎通过倒排索引找到与之相关的文档ID列表。

4. 倒排列表的交集操作:

  • 如果查询包含多个关键词,搜索引擎会对这些关键词的倒排列表进行交集操作,得到包含所有关键词的文档ID列表。

5. 文档排序和排名:

  • 搜索引擎根据某种算法对得到的文档ID列表进行排序和排名,以便将最相关的文档排在前面。

6. 返回搜索结果:

  • 最终,搜索引擎将排名最高的文档作为搜索结果返回给用户,呈现在搜索结果页面上。

倒排索引的设计使得搜索引擎能够在海量文档中迅速定位包含查询关键词的文档,因此在检索过程中具有高效性。通过直接访问倒排列表,搜索引擎可以快速获取包含关键词的文档ID,而不需要逐一扫描所有文档。这种高效的检索过程是搜索引擎能够迅速响应用户查询的关键。

相关推荐
guanpinkeji14 分钟前
陪诊小程序搭建,打造一站式陪诊服务
大数据·小程序·小程序开发·陪诊·陪诊小程序
胡耀超1 小时前
如何从全局视角规划项目与战略决策(“精准接送”案例、技术架构设计与选型、业务逻辑及产品商业模式探讨)
大数据·数据挖掘·软件架构·商业模式·数据管理
标贝科技1 小时前
标贝科技受邀出席2024ADD数据应用场景大会 共议数据要素发展新契机
大数据·数据库·人工智能·科技·语言模型·数据挖掘
出发行进2 小时前
Hive其五,使用技巧,数据查询,日志以及复杂类型的使用
大数据·hive·数据分析
ssxueyi2 小时前
数据仓库有哪些?
大数据·数据仓库·数据湖
武子康2 小时前
大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
大数据·数据仓库·hive·hadoop
五分钟学大数据3 小时前
数仓面试中3个常考的SQL数据分析题
大数据
莫叫石榴姐3 小时前
SQL进阶技巧:如何计算算法题分发糖果问题?
大数据·数据结构·数据库·sql·算法·数据挖掘·数据分析
河南查新信息技术研究院3 小时前
科技查新对专利申请有什么帮助?
大数据·科技·全文检索
天冬忘忧4 小时前
Flink调优----资源配置调优与状态及Checkpoint调优
大数据·flink