强化ECSHOP搜索功能(随机关键词+拼音搜索+分词搜索+结果分类展示+关键字标红)开发思路
1、随机关键词:
原理获取关键词数量,然后进行随机数,以下是关键jquery代码
$('.searchkeywords').ready(function(){
var k_num = $('.searchkeywords').find('a').length;
var s_num = Math.floor(Math.random()*(k_num+1));
var k_html = $('.searchkeywords').find('a').eq(s_num).html();
if(k_html){
$('#keyword').val(k_html);
}
for(i=0;i<3;i++){ //标红三个关键字
$('.searchkeywords').find('a').eq(Math.floor(Math.random()*(k_num+1))).css('color','#ff0000');
}
});
2、分词搜索
原理:把获取的关键字通过分词类进行分词
如何得到电子商务网站模板分词类?有使用过dedecms的朋友就知道了,dedecms就有**一个不错的分词类,借助这个类即可把关键字进行分词
3、拼音搜索,分为全拼和首拼
原理:实际上拼音搜索说白了就是查找用户关键字表中的全拼和首拼字段值,简单来说就是先保存用户搜索的关键词,再调用出来 苹果手机===》保存中文和拼音到表中,然后前台就能自动获取
那么如何得到这些值?
那必须有一个汉字转拼音的类(网上搜大把大把的,不过要注意gbk和utf-8编码转是不同的,尽量找一个两者都兼容的)
所以结合分词搜索+拼音搜索顺序为:先把关键词比如“苹果手机” 拆分为“苹果手机”、“苹果”、“手机”,然后进行三个词的转换拼音,接着保存词和拼音字段(这个操作是在search.php里面)
然后前台通过autocomplete 插件(这个大家都熟悉),传递关键词,然后搜索中文同时,把关键词再次分词和转换拼音,然后模糊查询,把结果返回前台(这个操作要自己写一个ajax接口)。
至于分类查询如何实现?其实就是获取第一条搜索记录的分类id,然后查找分类名称(也可以查找父类的)