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,就能快速找到文档。 每个索引还建立了在元数据区出现的次数,出现的位置等信息,用于计算分数,按照特定顺序输出


相关文章
|
7月前
|
自然语言处理 搜索推荐 关系型数据库
索引有哪些优缺点
索引有哪些优缺点
|
7月前
|
存储 关系型数据库 MySQL
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
108 0
|
7月前
|
SQL 存储 关系型数据库
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
189 1
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL索引的作用(索引的优缺点)
MySQL索引的作用(索引的优缺点)
293 0
|
存储 关系型数据库 MySQL
|
存储 消息中间件 SQL
|
SQL 搜索推荐 关系型数据库
一文带你你搞懂索引如何优化!!!
一文带你你搞懂索引如何优化!!!
|
存储 SQL 关系型数据库
MySql索引详解-各种索引的定义与区别和应用
什么是索引?索引的作用,有无索引的区别。
218 0
MySql索引详解-各种索引的定义与区别和应用
|
存储 SQL 关系型数据库
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
680 0
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
|
存储 算法 关系型数据库