mysql 关键词相关度排序方法详细示例分析

小项目有时需要用到关键词搜索相关性排序,用sphinx显得杀鸡用牛刀,就用mysql的order by对付下。

方法一:

select * from articles where (title LIKE '%keywords%') or (content LIKE '%helloworld%') order by ((CASE WHEN title LIKE '%keywords%' THEN 2 ELSE 0 END) + (CASE WHEN content LIKE '%helloworld%' THEN 1 ELSE 0 END)) ASC, dateline DESC

方法二:打个比方,如果搜索关键字“IBM”,“服务器”,

首先,对搜索关键字的处理,代码如下:

$kw = preg_replace("/(\s+)|( +)+/","", $kw);//替代空格,换行,tab,中文空格

$kw = preg_replace( "/(^\s*)|(\s*$)/ ", "",$kw);//去除首尾空格

$kw = preg_replace("/(\s+)/", "", $kw);//替换多个空格为一个空格

$q = explode('',$kw);//枚举关键字

这里还需要添加一个去掉标点符号的代码,但是这段代码会出现问题,不知道如何解决。

然后是生成SQL语句的代码

$f = array(”name”,”description”); //查询的字段name=产品名,description=产品描述

$s = array(4,2); //权重,name字段匹配积分4分,description字段匹配积2分,最后按积分排序

//创建查询条件语句

for($i=0;$i

for($j=0;$j

$clause[$c] = ” (”.$f[$j].” LIKE ‘%”.$q[$i].”%') “;

$score[$c] = ” IF(LOCATE('”.$q[$i].”‘, “.$f[$j].”), “.$s[$j].”, 0) “;

$c++;

}

}

$sql = “SELECT id, name, description,

(”.implode(”+”,$score).”) AS score

FROM product

WHERE (”.implode(” OR “,$clause).”)

ORDER BY score DESC”;相关阅读:

javascript实现在网页任意处点左键弹出隐藏菜单的方法

SQL直接操作excel表(查询/导入/插入)

C#使用ToUpper()与ToLower()方法将字符串进行大小写转换的方法

php实现的操作excel类详解

jQuery过滤HTML标签并高亮显示关键字的方法

在Ubuntu或Debian系统的服务器上卸载MySQL的方法

腾讯、360宣布暂停Win10升级助手服务!问题太多

JavaScript中继承用法实例分析

关于PHP session 存储方式的详细介绍

mysql 添加索引 mysql 如何创建索引

zepto与jquery的区别及zepto的不同使用8条小结

2016年Win10重大更新RedStone版与win10 th2版有什么不同?

java邮件收发功能实现代码

php导出word文档与excel电子表格的简单示例代码

php关键词匹配度排序,MySQL_mysql 关键词相关度排序方法详细示例分析,小项目有时需要用到关键词搜 - phpStudy...相关推荐

  1. mysql 关键词相关度排序方法详细示例分析

    http://www.jb51.net/article/40480.htm 转载于:https://www.cnblogs.com/lixiuran/p/5299305.html

  2. 通过sql实现模糊搜索按匹配度从高到低排序

    通过sql实现模糊搜索,并且按匹配度从高到低排序 select distinct name,age from ( (如果需要多表一起查询排序的话在当前地方使用 union all )          ...

  3. 百度关键词质量度如何提高?9个质量度影响因素

    百度竞价中,质量度是什么概念在这里就不做介绍了,但有必要更正一下错误认识,那就是,质量度对关键词点击价格的影响并没有某些人说的那么重要,他只是影响排名和点击价格的一点点因素而已,大可不必过分纠结于此, ...

  4. 数据库检索和全文检索的比较(性能,匹配度准确度,相关度排序)

    数据库检索: 1(性能):使用like搜索,会对表中的数据进行全表扫描 2(匹配度准确度):select * from table where 字段 like '%关键词%'; 3(相关度排序):搜索 ...

  5. SEO中的十大关键词竞争度分析方法

    关键词分析在SEO中的地位是举足轻重的,其中关键词的竞争强度分析也尤为重要.关键词竞争强度,通俗来讲,也就是这个词竞争大不大,好不好做上去?可能这些大家都知道,之所以列出来,只是为了让不知道的朋友了解 ...

  6. 关键词竞争度如何分析?

    对于seo人员来说,实施网站优化的时候,首先要根据实际情况定位可优化的关键词.实际情况指的是,你有多少资源,你有多少专业内容等.不是所有的关键词你都能优化上去的,这就要根据自身情况来量身选词,这样才能 ...

  7. python关键字匹配_python通过BF算法实现关键词匹配的方法

    本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: UTF-8 # filename ...

  8. python问题关键词匹配算法_python通过BF算法实现关键词匹配的方法

    本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: UTF-8 # filename ...

  9. python地图匹配_python通过BF算法实现关键词匹配的方法

    本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: UTF-8 # filename ...

最新文章

  1. Redis消息通知系统的实现
  2. html img 指定旋转角度_ALLEN老师自动化测试小课堂 | 生成HTML可视化报告的两个常见模块...
  3. DHL:jQuery框架学习使用总结,插件,继续中...
  4. 64位Ubuntu 12.04下搭建嵌入式Qt(4.8.6)、QtCreator、qvfb过程全记录
  5. 最优化课堂笔记03:整数规划
  6. Silverlight专题(10)- WatermarkedTextBox使用
  7. 7-14 电话聊天狂人 (25 分)map做法 + 详解 + 思路分析
  8. 【hihocoder - offer编程练习赛60 B】最大顺子(双指针,思维)
  9. Nginx学习总结(15)—— 提升 Web 应用性能的十个步骤
  10. 68 个人脸landmark 点分布图
  11. [转载] python元组特点_python元组的优势有哪些
  12. 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。...
  13. Exchange2003不能自动删除日志
  14. java多线程知识点之wait和sleep的区别
  15. “拖延症”的良方——对于追求完美,自制力差,情绪化的人很受用。
  16. H5 img标签图片无法显示 -- 解决方案
  17. java image 内存不足_java内存不足的解决方法
  18. Android Studio 部分查找快捷键
  19. 《Linux那些事儿之我是USB》我是U盘(15)冬天来了,春天还会远吗?(一)
  20. Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

热门文章

  1. 详细信息:“从提供程序读取数据时出错:“Could not load file or assembly 'Renci.SshNet, Version=2016.1.0.0, Culture=neutr
  2. 滚动排行榜实现方式小结
  3. 列表+样式初始化+元素类型转换
  4. 卷积运算与卷积核DLC
  5. 1221:分成互质组
  6. java中的cascade,详解Hibernate cascade级联属性的CascadeType的用法
  7. [导入]做杨振宁还是做邓稼先
  8. 虚拟机中Linux怎么与宿主机、外网通信
  9. routerboard RB750路由器配置option43使华为AP远程连接AC的方法
  10. 我见过的,最易上手的Shader入门教程(图文)