5.索引原理

简介: 5.索引原理

倒排索引

倒排索引(Inverted Index) 也叫反向索引,有反向索引必有正向索引。 通俗地来讲,正向索引是通过key找valug,反向索引则是通过value找key。 ES底层在检索时底层使用的就是倒排索引。

索引模型

先有索引和映射如下:

json

复制代码

{
"products" : {
  "mappings" : {
    "properties" : {
      "description" : {
        "type" : "text"
      },
      "price" : {
        "type": "float"
      },
      "title": {
        "type" : "keyword"
      }
    }
  }
}

先录入如下数据,有三个字段title、price、description

_id title price description
1 洗衣液 25 这个洗衣液很搞笑
2 手机 1999 很好用
3 小老鼠 0 很好吃
倒排索引的示意如下,这就是es的查询效率高的原因
title字段不分词,整块匹配
description字段分词,每个字都是一个匹配
索引区 元数据区
洗衣液 1 1 洗衣液 25 很搞笑
25 1 ...
很 [1,2,3]
搞 1
笑 1
手机 2
1999 2
好 2
用 2
...

注意:Elasticsearch分别为每个字段都建立了一个倒排索引。因此查询时查询字段的term.就能知道文档ID,就能快速找到文档。 每个索引还建立了在元数据区出现的次数,出现的位置等信息,用于计算分数,按照特定顺序输出


目录
打赏
0
0
0
0
7
分享
相关文章
(五)MySQL索引应用篇:建立索引的正确姿势与使用索引的最佳指南!
在本篇中,则重点讲解索引应用相关的方式方法,例如各索引优劣分析、建立索引的原则、使用索引的指南以及索引失效与索引优化等内容。
1506 0
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
229 1
FAQ系列 | B+树索引和哈希索引的区别
FAQ系列 | B+树索引和哈希索引的区别
245 0
FAQ系列 | B+树索引和哈希索引的区别
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
758 0
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它

相关实验场景

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等