Elasticsearch系列-倒排索引概念

Elasticsearch系列-倒排索引概念


在日常生活中,我们去购买书籍的时候,都会先去看一下书籍的目录,通过目录我们可以很快找到需要内容所在的位置,然后找到对应位置去详细查看。还有就是我们平常设计表结构的情况,一般我们都会给表设计一个主键id,通过主键id我们就能很方便的找到对应信息。这种通过id去找内容的方法,就是正排索引。那倒排索引其实就是反过来,通过内容或者单词能找到对应id的信息。总结来说,正排索引就是文档id到文档内容和单词的关联。倒排索引就是单词到文档id的关系。

正排索引:

idnameageaddress
1Layne27China
2Nancy28China
3Kobe41USA

假设我们给name做倒排索引:

termidcount
Layne11
Nancy21
Kobe31

给address做倒排索引:

termidcount
China1,22
USA31

倒排索引的核心组成

  • 单词词典(Term Dictionary):记录所有文档的单词,记录单词到倒排列表的关联关系。单词词典一般比较大,可以通过B+数或哈希拉链法实现,以满足高性能的插入与查询。
  • 倒排列表(Posting List):记录了单词对应的文档结合,由倒排索引项组成。
    倒排索引项(Posting)包含:
    • 文档id
    • 词频TF 该单词在文档中出现的次数,用于相关性评分
    • 位置 单词在文档中分词的位置。用于语句搜索
    • 偏移 记录单词的开始结束位置,实现高亮显示

Elasticsearch的倒排索引
Elasticsearch的JSON文档中的每个字段,都有自己的倒排索引。
可以指定对某些字段不做索引。优点:节省存储空间,缺点:字段无法被搜索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Layne_lei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值