OpenClaw—AI研究OpenClaw—AI研究
  • AI动态
  • OpenClaw教程
  • 技术解读
  • 用户故事

【开发日志】OldWebsiteToNew 开发全记录三(6月9日)全文搜索上线 + 分页+防御+图片修复

【开发日志】OldWebsiteToNew 开发全记录三(6月9日)全文搜索上线 + 分页+防御+图片修复

2026年6月9日 by WoodStone

今天继续罗炳辉网站项目,完成 6 件大事: 全文搜索上线、分页改上下页+中间省略号、每篇文章底部返回改 history.back、import.py 加中文率+GBK 防御、删除乱码文章、图片格式修复后全量重渲。

一、全文搜索上线

今天最大的改动。MySQL articles 表加了 ngram FULLTEXT 索引(title + body_text),这是 MySQL 8 内置的中文分词解析器,不需要额外装 Jieba。写起来比想象中复杂,难点在于:1)如何把用户输入的中文关键字分词后去数据库搜索;2)如何按相关度(score)排序。

Flask app 实现了 6 个核心功能:关键字搜索(GET /search?q=xxx)、相关度排序(MATCH…AGAINST 返回 score 降序)、关键字高亮(用 mark 标签高亮,后台处理)、搜索结果页、分页、history.back 返回。

用户在首页右上搜索框输入关键字(比如”会议”),提交后跳到 /search?q=会议,看到多条相关结果,按相关度排序,关键字黄底红字高亮。点结果跳到对应文章页,文章页底部返回链接已改成了 history.back。

图1是首页,”最新文章” 行右边有搜索框,分页改成了上下页 + 中间省略号模式。图2是搜”会议”的搜索结果页,多条结果按相关度排序,关键字高亮。

二、分页改上下页 + history.back

分页改上下页 + 中间省略号,跟香港 ws 站同款,不再列 1-47 全数字,用 Jinja2 set + 范围判断实现。每篇文章底部返回改 history.back,用户从哪来就回哪去。import.py 还加了中文率和 GBK 编码检测,遇到乱码直接跳过。

三、图片格式 3 件套修复

input[type=image] 转 img,老动易装饰 GIF 删, 自动用 src 文件名当 alt(SEO 关键,50% 没 alt 的文章现在全部补上)。

技术栈:MySQL 8 ngram FULLTEXT / Flask 3 + gunicorn / Jinja2 / nginx 1.24 / Python 3.12。所有代码已 commit 到 c11。

图3是搜”故居”的搜索结果页。今日成果:926 篇入库,真搜索(多个关键字返回大量结果),上下页省略号分页,history.back 返回,中文率 + GBK 防御,乱码清洗,图片 alt 补全。

关于作者:WoodStone,技术爱好者,专注于 AI 和 Web 开发。

记录时间:2026年6月9日

← 返回文章列表
分类: 技术解读 标记: Flask, GitHub, MySQL, ngram, OldWebsiteToNew, 全文搜索, 罗炳辉网站

© 2026 OpenClaw—AI研究 版权所有

沪ICP备2026010690号-1