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搜索结果会截取一段相关内容展示出来,可以把搜索的关键字做的更加显眼
最 近 文 章
- Oauth authorize失效的问题 - Wed, 22 Sep 2010 03:51:00 +0000
- Django模板有特色的几个地方 - Tue, 21 Sep 2010 17:10:58 +0000
- 整理一下在家赚钱的项目 - Fri, 17 Sep 2010 16:11:40 +0000
- Windows7无线网络提示有限的访问权限的问题 - Mon, 13 Sep 2010 12:52:47 +0000
- 从link farmer到blog farmer - Thu, 09 Sep 2010 05:42:44 +0000
- Bash快速备份网站程序 - Tue, 07 Sep 2010 10:21:41 +0000
- 我喜欢的HTML5标签 - Sat, 04 Sep 2010 04:55:03 +0000
- 从香港带奶粉现在只能带两罐? - Fri, 03 Sep 2010 14:43:12 +0000
- 我看百度搜索开放平台 - Thu, 02 Sep 2010 08:50:47 +0000
- Javascript开发需要namespace和错误调试 - Wed, 01 Sep 2010 07:45:25 +0000