🔥本文简要🔥

同学们好!本篇文章主要是介绍Elasticsearch的自动补全功能,以及提供一个小案例给大家。

  • 😄博主:程序员一灯,一个老菜鸟,哈哈哈哈
  • 🚌一个人可以走的很快,一群人可以走的很远🇨🇳
  • 🎉点赞➕评论➕收藏 ➕关注== 养成习惯(一键四连)📝
  • 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝
  • 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!😆

一、解释

二、问题抛出

三、原理解释

四、倒排索引的视觉表示


一、解释

倒排索引的英文:Inverted Index。其实翻译过来叫倒置索引更加的贴切,因为倒排索引很多人以为是数据库倒排order by desc。。。。😂🤣

二、问题抛出

Elasticsearch 中的索引实际上就是所谓的倒排索引,它是所有搜索引擎工作的机制。

看看百度百科的定义:倒排索引_百度百科

倒排索引源于实际应用中需要根据属性的值来查找记录。

在我们百度搜索资料的时候,大家是经常看到搜索不仅仅是局限于标题,大多数时候是搜索到内容的对吧?

三、原理解释

从上面可以看出,如果让我们自己去设计数据结构,肯定不能按照以往的那种(查询标题)去设计对吧

正常的mysql:

Goods表:ID addTime goodsName goodsDetails、goodsSEO

我们去设计索引是将goodsName去拆分出词,按照商品名称搜索到该条记录值

但是我们将这条记录放到互联网,那么搜索范围是不是就小太多了?

我如果想根据goodsSEO、goodsDetails中的关键词搜索,是不是范围就大了很多,那如何设计呢?

有同学肯定说,那就把goodsSEO、goodsDetails中的词也索引了不就得了,一了百了

对的,搜索引擎就是这么干的,他把标题、内容都给索引了

这么做,就是倒排/倒置索引,正常的数据数据是:key/value形式,按照key索引即可

倒排索引是按照value去索引

当然了,es是将每个字段都给索引了,也就是每个字段都给你整了一套分词、索引,是不是很贴心?

很low?😂

四、倒排索引的视觉表示

将文档内容进行索引,后面的Document代表该条记录的ID值,也就是整条数据

比如找到了Term中butterfly就找到了Document1了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐