正在加载

全文搜索的工作原理

Elastic Stack 无服务器

下图说明了全文搜索的组成部分。

Components of full-text search from analysis to relevance scoring

总的来说,全文搜索涉及以下内容

  • 文本分析:分析包括一系列顺序转换的管道。文本被转换成一种为搜索优化的格式,使用的技术包括词干提取、小写转换和停用词消除。Elasticsearch 包含许多内置的 分析器和分词器,包括分析特定语言文本的选项。您还可以创建自定义分析器。
提示

请参阅 测试分析器,了解如何测试分析器并检查它生成的令牌和元数据。

  • 倒排索引创建:分析完成后,Elasticsearch 会从生成的令牌构建倒排索引。倒排索引是一种数据结构,它将每个令牌映射到包含它的文档。它由两个关键组件组成

    • 字典:索引中所有文档集合中所有唯一术语的排序列表。
    • 倒排列表:对于每个术语,该术语出现的文档 ID 列表,以及可选的元数据,如术语频率和位置。
  • 相关性评分:结果按它们与给定查询的相关性进行排序。每个文档的相关性得分由一个称为 _score 的正浮点数表示。_score 越高,文档的相关性就越高。

    Elasticsearch 用于计算相关性分数的默认 相似度算法Okapi BM25,它是 TF-IDF 算法 的变体。BM25 基于术语频率、文档频率和文档长度计算相关性分数。有关 BM25 的深入探讨,请参阅此 技术博客文章

  • 全文搜索查询:查询文本经过 与索引文本相同的方式分析,生成的令牌用于搜索倒排索引。

    Query DSL 支持许多 全文查询

    从 8.17 开始,ES|QL 也支持 全文搜索 函数。

© . All rights reserved.