1. 网页抓取与解析 :
* 编写简单爬虫模块,抓取指定种子URL列表下的有限网页 (例如:10-50个)。
* 使用 `BeautifulSoup` 解析HTML,提取页面标题 `<title>`、正文主要内容 (去除标签) 和原始URL。
* *(可选:处理相对URL转绝对URL)*
2. 建立倒排索引 :
* 对抓取的网页正文内容进行**分词** (使用简单空格分割或基础中文分词库如 `jieba`)。
* 创建数据库表存储:
* `网页表 (pages)`:存储 `id, url, title, content(或摘要), timestamp`。
* `索引表 (index)`:存储 `关键词 (word), 网页id (page_id), 词频 (frequency 或权重)`。
* 实现索引构建逻辑:遍历每个网页的分词结果,将 `(word, page_id, frequency)` 记录插入或更新到索引表。
3. 搜索查询处理:
* 提供 `/search?q=关键词` API 接口 (使用 `Flask` 实现)。
* 接收用户查询关键词,同样进行分词。
* 编写 **SQL 查询**:在 `索引表` 中查找包含这些关键词的记录,并关联 `网页表`。
* 实现**基础排序**:
* **TF-IDF 简化版:** 根据关键词在目标网页中的出现频率 (`TF`) 和在整个文档集合中的稀有程度 (`IDF`,可预先计算或简化) 计算相关性得分。
* **或简单排序:** 按词频总和、或匹配关键词数量、或网页时间戳排序。
* 返回排序后的搜索结果列表 (JSON格式):包含 `标题 (title), URL (url), 内容摘要 (snippet)`。
4. 结果展示 :
* 提供一个极简的 `HTML` 搜索页面 (表单输入框 + 提交按钮)。
* 后端将搜索结果渲染到模板或通过前端JS调用API展示。