Elasticsearch之-倒排索引

 

一、倒排索引是什么

ES中用到了倒排索引,啥叫倒排索引呢,一般查询都是根据索引值来查找属性,倒排索引实际应用中需要根据属性值来查找记录,这种索引表中的每一个项都包括一个属性值和该属性值的记录地址。由于不是由记录位置来确定属性值,而是由属性值来确定记录的位置,因而成为倒排索引。带有倒排索引的文件我们称之为倒排索引文件,简称倒排文件。

二、举例

在存储文件之前,先对文件进行分析,将文件分词,对分词建立索引,例如下面一句话   (分好的词就类似于属性值,建立的索引就相当于属性值位置记录)

今天是星期天我们出去玩

关键词文章
今天 文章1,文章3
星期天 文章2
出去玩 文章5,文章1

实际上es在做存储的时候,更详细(记录出现的在哪个文章,出现的位置和次数)

关键词文章
今天 (文章1,<2,10>,2) (文章1,<8>,1)
星期天 (文章2,<12,25,100>,3)
出去玩 (文章5,<11,24,89>,3)(文章1,<8,19>,2)

三、倒排索引待解决的问题

1.大小写转换问题
2.词干抽取    looking和look应该处理为同一个词
3.分词处理
4.倒排索引文件过大,需要压缩编码

 

posted @ 2020-10-26 00:19  只会玩辅助  阅读(1293)  评论(0编辑  收藏  举报