定义:
倒排索引
源于实际应用中需要根据 属性的值 来查找 记录
这种 索引表 中的 每一项 都包括 一个属性值 和 具有该属性值的各记录的地址
由于不是由记录来确定属性值,而是由 属性值 来确定 记录的位置,因而称为倒排索引(inverted index)
带有倒排索引的文件 被称为 倒排索引文件,简称倒排文件(inverted file)
ES中的 倒排索引:
而在ElasticSearch中,也同样用到了 倒排索引 这种结构
通过这种结构,ES能够筛选出 特定关键词 的 所在文档
,
且能够区别出每个匹配文档的 匹配程度
举个栗子:
现有如下 两个文档内容:
- Every day, I just imagine a future where I can be with you
- Monika give you everlasting love
词 | 文档1 | 文档2 |
---|---|---|
Every | √ | |
day | √ | |
I | √ | |
just | √ | |
imagine | √ | |
a | √ | |
future | √ | |
where | √ | |
I | √ | |
can | √ | |
be | √ | |
with | √ | |
you | √ | √ |
Monika | √ | |
give | √ | |
everlasting | √ | |
love | √ |
那么,我们若是搜索 just love Monika,就会根据上面的 倒排表,进行匹配:
词 | 文档1 | 文档2 |
---|---|---|
just | √ | |
love | √ | |
Monika | √ |
搜索结果为:
- 两个文档都匹配
- 文档2的匹配程度 > 文档1的匹配程度