ElasticSearch 倒排索引

ElasticSearch 倒排索引,第1张

ElasticSearch 倒排索引

倒排索引:是 es 中非常重要的索引结构,是从文档词项到文档 ID 的一个映射过程。

“正排索引”
我们在关系型数据库中见到的索引,就是“正排索引”。

关系型数据库中的索引如下,假设我有一个博客表:

id作者标题内容1gblfy倒排索引标题具体内容xxx2心灵之境es中文分词器标题具体内容xxx

一般为了提高查询效率查会给id或者标题添加索引。换句话说我们可以针对这个表建立索引(正排索引):

索引内容1具体内容xxx2具体内容xxx倒排索引标题具体内容xxxes中文分词器标题具体内容xxx

以上就是以id和标题创建的4个索引
当我们通过 id 或者标题去搜索文章时,就可以快速搜到。

但是,如果我们按照文章内容的关键字去搜索,就只能去内容中做字符匹配了(select * from 表 where 字段 like ‘%关键词%’)。为了提高查询效率,就要考虑使用倒排索引。

倒排索引
倒排索引:就是以内容的关键字建立索引,通过索引找到文档 id,再进而找到整个文档。

索引文档id=1文档id=2java√es√√gblfy√√

一般来说,倒排索引分为两个部分:

  • 单词词典(记录所有的文档词项,以及词项到倒排列表的关联关系(例如:上面的表格))
  • 倒排列表(记录单词与对应的关系,由一系列倒排索引项组成,倒排索引项指:文档 id、词频(TF)(词项在文档中出现的次数,评分时使用)、位置(Position,词项在文档中分词的位置)、偏移(记录词项开始和结束的位置))
    当我们去索引一个文档时,就回建立倒排索引,搜索时,直接根据倒排索引搜索。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5656458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存