重写 StarBlog 的搜索功能和页面,支持权重设置和结果高亮

💡 原文中文,约3400字,阅读约需8分钟。
📝

内容提要

文章讨论了对StarBlog搜索功能的改进,采用手动计算权重和正则表达式高亮显示搜索结果,优化了搜索逻辑和界面,提升了用户体验。未来计划开发v2版本,可能加入多个关键词搜索功能。

🎯

关键要点

  • 文章讨论了StarBlog搜索功能的改进,发现原有搜索功能简陋。
  • 新版本允许搜索正文内容,但缺乏权重控制,标题权重应高于正文。
  • 考虑使用Elasticsearch或Lucene.NET等全文检索引擎,但因服务负担重而选择简单改进。
  • 最终方案为手动计算权重和使用正则表达式高亮显示搜索结果,成本低且效果良好。
  • 重写了搜索结果页面,提升了用户体验。
  • 搜索逻辑通过Linq计算权重,标题每命中一次加100分,内容命中加1分。
  • 使用正则表达式实现搜索结果高亮,生成高亮片段摘要。
  • 重构后体验显著提升,但老架构的修补不是长久之计,计划开发v2版本。
  • 未来可能加入多个关键词搜索功能,并考虑搭配Lucene.NET。

延伸问答

StarBlog的搜索功能有哪些改进?

StarBlog的搜索功能改进包括手动计算权重、使用正则表达式高亮显示搜索结果,并重写了搜索结果页面,提升了用户体验。

为什么不使用Elasticsearch或Lucene.NET?

虽然考虑使用Elasticsearch或Lucene.NET,但由于服务负担重,选择了更简单的手动改进方案。

如何计算搜索结果的权重?

搜索结果的权重通过Linq计算,标题每命中一次加100分,内容命中加1分,最终得分用于排序。

搜索结果是如何高亮显示的?

搜索结果使用正则表达式高亮显示,匹配的关键词会被包裹在<mark>标签中,以便突出显示。

未来对StarBlog搜索功能有什么计划?

未来计划开发v2版本,可能加入多个关键词搜索功能,并考虑搭配Lucene.NET。

重写搜索结果页面的目的是什么?

重写搜索结果页面的目的是为了提升用户体验,之前的页面设计过于简陋。

➡️

继续阅读