欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql 關鍵詞相關度排序方法詳細示例分析

 更新時間:2013年08月12日 09:05:43   作者:  
以下是對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);//枚舉關鍵字

這里還需要添加一個去掉標點符號的代碼,但是這段代碼會出現(xiàn)問題,不知道如何解決。

然后是生成SQL語句的代碼

復制代碼 代碼如下:

$f = array(”name”,”description”); //查詢的字段name=產(chǎn)品名,description=產(chǎn)品描述
$s = array(4,2); //權重,name字段匹配積分4分,description字段匹配積2分,最后按積分排序

復制代碼 代碼如下:

//創(chuàng)建查詢條件語句
for($i=0;$i<count($q);$i++){
for($j=0;$j<count($f);$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”;

相關文章

  • MySQL之information_schema數(shù)據(jù)庫詳細講解

    MySQL之information_schema數(shù)據(jù)庫詳細講解

    這篇文章主要介紹了MySQL之information_schema數(shù)據(jù)庫詳細講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Mysql 執(zhí)行一條語句的整個過程詳細

    Mysql 執(zhí)行一條語句的整個過程詳細

    這篇文章主要介紹了Mysql 執(zhí)行一條語句的整個詳細過程,Mysql的邏輯架構整體分為兩部分,Server層和存儲引擎層,下面文章內(nèi)容具有一定的參考價值,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02
  • MySQL?Server?層四個日志詳解

    MySQL?Server?層四個日志詳解

    這篇文章主要介紹了MySQL?Server?層四個日志,包括錯誤日志,查詢?nèi)罩荆M制日志及慢查詢?nèi)罩?,本文結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • 使用MySQL中的AVG函數(shù)求平均值的教程

    使用MySQL中的AVG函數(shù)求平均值的教程

    這篇文章主要介紹了使用MySQL中的AVG函數(shù)求平均值的教程,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • MySQL數(shù)據(jù)庫的shell腳本自動備份

    MySQL數(shù)據(jù)庫的shell腳本自動備份

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的shell腳本自動備份的相關資料,網(wǎng)站或應用的后臺都有備份數(shù)據(jù)庫的功能按鈕,但需要去手工執(zhí)行。我們需要一種安全的,每天自動備份的方法需要的朋友可以參考下
    2017-03-03
  • mysql 8.0.12 安裝配置方法圖文教程

    mysql 8.0.12 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.12 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • myeclipse中連接mysql數(shù)據(jù)庫示例代碼

    myeclipse中連接mysql數(shù)據(jù)庫示例代碼

    這篇文章主要為大家詳細介紹了MyEclipse連接MySQL數(shù)據(jù)庫圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • linux mysql5.6版本的安裝配置過程

    linux mysql5.6版本的安裝配置過程

    mysql官網(wǎng)開始發(fā)布相關的5.6系列的各個版本,對于mysql5.6系列的版本對一起的版本進行了全局性的細節(jié)性加強
    2013-06-06
  • MySql 5.6.14 winx64配置方法(免安裝版)

    MySql 5.6.14 winx64配置方法(免安裝版)

    這篇文章主要介紹了MySql 5.6.14 winx64配置方法(免安裝版)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • MySQL-tpch 測試工具簡要手冊

    MySQL-tpch 測試工具簡要手冊

    tpch是TPC(Transaction Processing Performance Council)組織提供的工具包。用于進行OLAP測試,以評估商業(yè)分析中決策支持系統(tǒng)(DSS)的性能。它包含了一整套面向商業(yè)的ad-hoc查詢和并發(fā)數(shù)據(jù)修改,強調(diào)測試的是數(shù)據(jù)庫、平臺和I/O性能,關注查詢能力
    2016-05-05

最新評論