小网站如何做好站内搜索程序

好的站内搜索对增加网站的用户体验是很有帮助的。但是如何做到简单、高效却也并不是太容易。特别是小网站,完全没有必要去搞什么分词搜索技术。个人觉得考虑到以下几点,就可以很好的满足用户的搜索体验,也能给用户提供匹配度较高的搜索结果。

  • 搜索字段的权重
    数据库里不同字段给予不同的权重,如标题的权重大于内容描述。
  • 关键词匹配相关度积分
    这里有个Mysql的搜索技巧

    SELECT title LIKE ‘%php%’ FROM zhaiduo_blog;会返回两种结果1或0,
    那么既然搜索字段有不同权重,我们可以这样得到不同的相关度:
    标题:SELECT (title LIKE ‘%php%’)10 FROM zhaiduo_blog;会返回两种结果10或0
    内容描述: SELECT (description LIKE ‘%php%’)
    5 FROM zhaiduo_blog;会返回两种结果5或0
    这样我们就可以得到不同字段的相关度得分,从而最终得到总的相关度积分。这也是我们排序的主要依据。

  • 关键字密度
    相关度积分还应该考虑到关键字的密度因素,给予不同积分
  • 搜索结果的展示
    把最匹配的结果展示给用户即可,如果搜索结果太多,可以链接到search more的页面。
  • 错别字纠正提示、拼写检查
    对于常见的关键字错误给予足够的提示是很好的用户体验
  • 搜索关键字的防攻击过滤
    注意关键字的过滤检查,防止sql注入攻击
  • 搜索排序的时效性
    相关性有了,也不要忘记时间的因素,应该避免搜索结果09年排在10年之前
  • 相关匹配内容的展示
    就像Google搜索结果会截取一段相关内容展示出来,可以把搜索的关键字做的更加显眼