ElasticSearch倒排索引

一、ElasticSearch基本概念

       Elastucsearch是基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基 于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布, 是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速, 安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他 语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是 Apache Solr,也是基于Lucene 演示:京东,淘宝 。

    Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。

    重要特性:

  1. 分布式的实时文件存储,每个字段都被索引并可被搜索
  2. 实时分析的分布式搜索引擎
  3. 可以扩展到上百台服务器,处理PB及结构或非结构化数据
二、倒排索引

倒排索引的概念是基于MySql这样的正向索引而言。

1.正向索引

  正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程。

    如果根据·id查询,直接走索引,查询速度非常快

                                                                                           Id                                 title
                              1                       IPhone16promax
                              2                         IWatch
                              3                    IPhone16promax充电器

    基于title做模糊查询,只能是逐行扫描,历程如下:

  1. 用户搜索数据,条件是title符合"%手机%"
  2. 逐行获取数据,比如是id为1的数据
  3. 判断数据中的title是否符合用户的搜索条件
  4. 如果符合则放入结果集,不符合则丢弃。回到步骤1

逐行扫描,也就是全表扫描,随着数据量的增加,其查询效率也会越来越低。当数量达到数百万时,就是一场灾难。

2. 倒排索引
  • 文档(Document):用来搜素的数据,其中的每一条数据是一个文档。如:一个网页、一个商品信息。
  • 词条(Term):
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值