python搜索引擎之搜索系统的建立——根据关键字命中次数排分给出前若干个答案

本文介绍了如何使用Python建立一个搜索引擎,通过建立词典和后向索引来实现搜索系统的功能。首先,文章详细阐述了词典的构建,接着讨论了后向索引的两个表项及其关系。接着,文章描述了基本思想,即通过搜索关键字在文档中的命中次数对结果进行排序。最后,解释了代码段,包括如何获取关键字的docId集合,统计docId的命中次数,并按照命中次数排序展示搜索结果。
摘要由CSDN通过智能技术生成
根据前面的博客建立了如下的各种索引库的表:


1.词典(对每个关键字分配一个 wordId)

词典放在命名为 backwardTableDb.db 中的 wordIdTable 中,见部分字典截图如下:



2.建立后向索引,及相关表项

后向索引有两个表项,其中第一个表项是后向索引表,其指定每个wordId,以及出现过该关键字的doc 的数量,同时还有该关键字的 doc hits 在后面一个表中的偏移,后一个表是后向表,记录了docId,以及对应当前关键字的hitlist,关于后向索引表的具体内容,百度吧。。实现是为了根据偏移快速定位到对应的docId的位置,人为增加了一列 docIdIndex项,两个表如下:
             

上述两个表的关系是:第一个表中的 wordId 出现过的网页的编号(docId)的连续存在第二个表中,第一个表中 offset 指出了存储编号的起始位置,该位置接下来的 nDocs个表项都是对应 wordId 出现过的 wordId


3.基本思想描述:

对输入的搜索语句,先进行分词,对每个关键字,根据后向索引表,找到对应的命中 docId 的 set,综合所有set评估docId,最后哪个docId 中命中的关键字个数越多,该docId 对应的网页越符合搜索需求。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值