Boost文档搜索

源码戳这里

Boost 文档搜索是基于 boost 文档的一个站内搜索引擎,当用户在页面上输入查询词后,就能查询出相关 boost 的在线文档。

具体搜索过程:

  1. 对离线版本的 html 文档进行解析,并将解析结果放到一个文本文件中
  2. 读取处理好文本进行分词以及权重计算等过程,构建出正排索引和倒排索引
  3. 对查询词进行分词,根据查询词的分词结果进行倒排索引查找,将结果按照权重进行排序
  4. 通过 HTTP 服务器搭载搜索页面提供服务

整个项目分为四个模块:预处理模块、索引模块、搜索模块、服务器模块

预处理模块

  • 输入路径,提取出所有的 html 文档
  • 读取 html 文档,解析出标题、url、正文
  • 用 ‘\3’ (不可见字符)对解析出的标题、url 和 正文进行分隔,每一个 html 为一行,存储在文件中

索引模块

  • 读取文本文件,用 jieba 分词对文章正文进行分词
  • 通过统计词频来计算出某个文档中某个词的权重,标题中的词占得权重适当多一些
  • 构造正排索引和倒排索引。正排索引就是通过文档的 id 找到文档的信息,而倒排索引就是通过文档内容找到对应文档的 id

搜索模块

  • 用 jieba 对查询词进行分词
  • 用查询词分词后的结果进行倒排索引找到相关的文档
  • 根据查询词在文档中权重的高低,对搜索到的文档进行排序,权重高的展示的靠前
  • 根据文档 id 在正排索引中查询到文档信息后,以 json 格式展示

服务器模块

  • 将 HTTP 服务器挂载搜索页面

效果展示

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值