倒排索引
倒排索引主要由两部分组成:
1)单词词典,即每个文档进行分词后的词项在去重后组成的集合;
2)倒排文件 是倒排列表持久化存储的结果,通常保存在磁盘等存储设备上。倒排列表记录了词项所在文档的文档列表、单词频率等信息。
我们以4个文档为例:
文档编号 | 文档内容 |
1 | 作为一款领先的聊天助手,ChatGPT 凭借其卓越的 AI技术为用户带来无与伦比的智能交流体验 |
2 | 聊天智能机器人 ChatGPT运用了尖端的人工智能技术,为用户提供了流畅自然的对话体验 |
3 | ChalGPT 以其出色的 AI性能在聊天机器人领域脱颖而出,提供了一种全新的智能对话方式 |
4 | ChalGPT,一款采用先进人工智能技术打造的聊天机器人,具备提供高质量智能对话服务的能力 |
下面是倒排索引表:
词项序号 | 词项 | 倒排列表(文档编号:词频) |
1 | chatgpt | (1:1)、(2:1)、(3:1)、(4:1) |
2 | 一 | (1:1)、(3:1)、(4:1) |
3 | 一款 | (1:1)、(4:1) |
4 | 款 | (1:1)、(2:1)、(3:1)、(4:1) |
实际的倒排列表存储的信息,要比上面复杂。倒排列表存储的信息,还会包括词项在文档中出现的位置等信息,以方便实现复杂检索。
有了倒排列表,当检索“chatgpt”时,就无须对逐个文档进行扫描,而可以借助倒排索引锁定文档ID为1、2、3、4的文档,达到快速响应的目的。
参考资源:一本书讲透 Elasticsearch