正向索引
正向索引的执行流程:
- 输入的关键字 keyword1
- 查询 id=1 中的所有 keyword
- 查询 id=2 中的所有 keyword
- 查询 id=3 中的所有 keyword
- 返回结果
- 以上可以看出查询某关键字的索引需要将所有的关键字都进行遍历并进行匹配。
为了解决以上搜索的弊端,引出倒排索引!
倒排索引
倒排索引以关键字为索引,当查询keyword1时只需要进入keyword1的记录中进行查询即可。
TF-IDF打分
如图:当hello在多个ID命中时,哪一个ID的匹配度更好呢?TF-IDF打分即解决该问题。
名词解释:
- TF:词频,每一个ID中包含的关键字hello越多表明该值越高。
- DF:文档频率,上图中的ID个数
- IDF:对DF取反即: 1/DF
- TF-IDF: TF*IDF
如上图hello出现的在ID中的次数为3,即 DF = 3 ,IDF = 1/3
id为1中 hello 出现1次,TF-IDF = 1/3 = 0.33
id为2中 hello 出现3次,TF-IDF = 3/3 = 1
id为3中 hello 出现1次,TD-IDF = 1/3 = 0.33
TF-IDF 分值越高则搜索的优先级越高