03-初识ES-倒排索引

03-初识ES-倒排索引(start)

1.正向索引和倒排索引

传统数据库(如MySQL)采用正向索引,例如给下表(tb_goods)中的id创建索引:

解释:

正向索引:我们知道对于数据库,它一般情况下都会基于id去创建一个索引,然后形成一个b+树,那么根据id检索的速度就会非常快,这种方式的索引就是一个正向索引。但是如果我现在搜索的字段不是id,而是一个普通的标题字段,标题字段一般内容比较长,不会给他加索引。即便你给他加了索引,如果我现在想搜的不是精确的标题值,而是搜其中的一部分,比如搜索也没有包含手机的,这个时候就会把数据库里面的每一条数据挨个select * from tb_goods表 where title like "%手机%",如果数据库里面的数据很多的话,这种性能可想而知。

倒排索引:倒排索引创建的时候,会形成一个新的表,这张表里面有两个字段,一个字段是“词条”,一个是“文档id”。

文档(document):每条数据就是一个文档,比如商品表里面每一个商品就是一个文档;

词条(term):文档按照语义分成的词语。

也就是说倒排索引,他在存储的时候,他会先把文档中的内容分成词条去存,比如拿到了第一条数据,要对标题创建倒排索引,那就把标题内容做个分词,得到小米和手机,这个时候就把每个词条存到新建的表里面,然后在后面记录它的文档id。

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值