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

解决方案 »

  1.   

    有多个韩版 秋冬 新款 红色 裙 怎么算要拆分 韩版 秋冬 新款 红色 裙 关键字,用INSTR判断是否出现再计算
      

  2.   

    前边条件用or连接,后边排序可以用原字符串长度减去replace(原字符串,关键词,'')长度
      

  3.   

    你的关键字是放到数组中?如果是这样,可以考虑在语言中拆分这些内容,存放到
    1个临时表中,打开临时表游标循环,REPLACE 工作表相关内容为空,替换前字符串
    长度-替换后字符串长度即为出现次数,效率都不高。
      

  4.   

    假设拆分后存入LSB中,字段KEY1
    SELECT A.F1 ,COUNT(*) FROM 工作表 A INNER JOIN LSB B ON INSTR(A.F1,B.KEY1)>0
    GROUP BY A.F1