Loving Coding & Visual Design

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

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

  • 搜索字段的权重
    数据库里不同字段给予不同的权重,如标题的权重大于内容描述。

  • 关键词匹配相关度积分
    这里有个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搜索结果会截取一段相关内容展示出来,可以把搜索的关键字做的更加显眼



下一页


最 近 文 章

  1. Oauth authorize失效的问题 - Wed, 22 Sep 2010 03:51:00 +0000
  2. Django模板有特色的几个地方 - Tue, 21 Sep 2010 17:10:58 +0000
  3. 整理一下在家赚钱的项目 - Fri, 17 Sep 2010 16:11:40 +0000
  4. Windows7无线网络提示有限的访问权限的问题 - Mon, 13 Sep 2010 12:52:47 +0000
  5. 从link farmer到blog farmer - Thu, 09 Sep 2010 05:42:44 +0000
  6. Bash快速备份网站程序 - Tue, 07 Sep 2010 10:21:41 +0000
  7. 我喜欢的HTML5标签 - Sat, 04 Sep 2010 04:55:03 +0000
  8. 从香港带奶粉现在只能带两罐? - Fri, 03 Sep 2010 14:43:12 +0000
  9. 我看百度搜索开放平台 - Thu, 02 Sep 2010 08:50:47 +0000
  10. Javascript开发需要namespace和错误调试 - Wed, 01 Sep 2010 07:45:25 +0000