前言
如果我有三段文本,id分别为0、1、2, 具体如下,我要找到哪段文本里有关键词es,这时最容易想到的办法就是依次遍历文本,匹配es,最后将符合的文本id输出。
0 i like es
1 i love es
2 i use devops
上述方法在数据量小的时候非常合适,但是我有几十万上百万以及更多的数据的时候,这样依次遍历 ,速度非常慢,不适合生产使用,通过关键词搜索这个生活中非常常见,抖音搜索想看的视频或博主,淘宝搜索想购买的东西等等,通过依次遍历明显是不可能的,这时es应运而生。
倒排索引
ElasticSearch,是一个基于Lucene的搜索服务器,Lucene原理就是应用了倒排索引,这时我们还是看0、1、2三段文本,将i like es 切分为三部分,这个操作叫分词,分词后每部分为一个词项(term);记录词项和文本id的关系,如下:
i --- 0、1、2
like -- 0
es -- 0、1
love -- 1
use -- 2
devops -- 2
在我们搜索es时,就可以搜到es这个词项,通过词项去匹配文档id为0和1,这时候又有一个问题,短短三句话就有这么多词项,如果换成几千几万句话,那词项也太多了 ,依次遍历
标签:Search,遍历,Elastic,--,详解,文本,词项,id,es From: https://blog.csdn.net/qq_59634082/article/details/141421081