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


相关文章
|
6天前
|
自然语言处理 搜索推荐 关系型数据库
索引有哪些优缺点
索引有哪些优缺点
|
6天前
|
存储 关系型数据库 MySQL
mysql索引优化,更好的创建和使用索引
mysql索引优化,更好的创建和使用索引
|
6天前
|
存储 关系型数据库 MySQL
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
34 0
|
6天前
|
SQL 关系型数据库 MySQL
MySQL索引设计原则 索引使用、索引失效、索引SQL优化
MySQL索引设计原则 索引使用、索引失效、索引SQL优化
53 0
|
6天前
|
存储 算法 关系型数据库
MySQL索引 索引数据结构B+Tree、分类及使用、回表查询
MySQL索引 索引数据结构B+Tree、分类及使用、回表查询
110 0
|
6天前
|
SQL 存储 关系型数据库
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
141 1
|
8月前
|
存储 人工智能 测试技术
唯一索引比普通索引快吗?运行原理是什么?
唯一索引比普通索引快吗?运行原理是什么?
79 0
|
9月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL索引的作用(索引的优缺点)
MySQL索引的作用(索引的优缺点)
179 0
|
SQL 搜索推荐 关系型数据库
一文带你你搞懂索引如何优化!!!
一文带你你搞懂索引如何优化!!!
|
存储 自然语言处理 索引
在 Yii2.0 中使用 Xunsearch,需要创建多少个索引?索引的个数如何确定?底层原理是什么?
在 Yii2.0 中使用 Xunsearch,需要创建多少个索引?索引的个数如何确定?底层原理是什么?