WAMP环境,求一段代码,用多个关键词,对一万条产品名称的记录进行搜索,并按照每条记录中含有关键词数量的多少,对返回结果进行排序。
例如:搜索词:“韩版 秋冬 新款 红色 裙”
产品名称1:欧昵雪 秋冬新款女装娃娃领长袖毛呢冬款连衣裙修身打底裙
产品名称2:2012新秋装华美刺绣亮片红色连衣裙羊毛呢无袖背心裙/呢子裙女
产品名称3:专柜正品 2012秋冬新款 韩版 毛呢连衣裙 新款 毛呢背心裙 大码 
搜索排序后得到:产品1含有“秋冬 新款 裙”3个关键字,产品2含有“红色 裙”2个关键字,产品3含有“韩版 秋冬 新款 裙”4个关键字;然后排序为:产品3,产品1,产品2。
要求:用SQL语句的方法实现,不用外部搜索引擎技术和其他插件,效率问题暂不考虑

解决方案 »

  1.   

    http://blog.csdn.net/acabin/article/details/8258155代码弱智,谨供参考
      

  2.   

    如果不考虑同一个关键词多次数出现可以这样写
    select * ((topic like '%韩版%')+(topic like '%秋冬%')+(topic like '%新款%')+(topic like '%红色%')+(topic like '%裙%')) as `weight` from table having `weight`>0 order by `weight` desc
      

  3.   

    我的思路是
    select id,title from table where ((title like '%韩版%') or (title like '%秋冬%') or (title like '%新款%')) 
    然后对搜出来的结果进行遍历
    foreach($row as $key=>$val)
    {
        //这里统计关键词在title中的出现次数
        //存放在$row[$key]['sum']中,匹配到一个关键词,这个数值++
    }
    //之后让数组$row按照sum字段排序。
    效率应该很低,但是不知道有什么更好的办法了。
      

  4.   

    大家天花乱坠的说了一通,忽略了一点,通过楼主的这个标题 <WAMP做这种搜索,代码怎么写啊 >
    难道看不出来楼主是个菜鸟吗,诸位回答的这么高深估计是没用的了.
      

  5.   

    想单纯的用php做全文检索?天方夜谭。你不要光想着实现功能。如果真的简单用php+mysql实现这种搜索,你的系统承受不了多少并发量。到时肯定后悔。我的意见,用第三方引擎。省事效率高。
      

  6.   

    php 下有个第三方的扩展.至于这个词的权重 我觉得你还有必要跟淘宝的数据进行一番计算.