首頁(yè) > 專家說(shuō)

mysql 關(guān)鍵詞相關(guān)度排序方法詳細(xì)示例分析

來(lái)源:新能源網(wǎng)
時(shí)間:2024-08-17 13:15:38
熱度:

mysql 關(guān)鍵詞相關(guān)度排序方法詳細(xì)示例分析【專家解說(shuō)】:小項(xiàng)目有時(shí)需要用到關(guān)鍵詞搜索相關(guān)性排序,用sphinx顯得殺雞用牛刀,就用mysql的order by對(duì)付下。方法一:復(fù)制

【專家解說(shuō)】:

小項(xiàng)目有時(shí)需要用到關(guān)鍵詞搜索相關(guān)性排序,用sphinx顯得殺雞用牛刀,就用mysql的order by對(duì)付下。
方法一:
復(fù)制代碼 代碼如下:
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

方法二:
打個(gè)比方,如果搜索關(guān)鍵字“IBM”,“服務(wù)器”,
首先,對(duì)搜索關(guān)鍵字的處理,代碼如下:
復(fù)制代碼 代碼如下:
$kw = preg_replace("/(\s+)|( +)+/","", $kw);//替代空格,換行,tab,中文空格
$kw = preg_replace( "/(^\s*)|(\s*$)/ ", "",$kw);//去除首尾空格
$kw = preg_replace("/(\s+)/", "", $kw);//替換多個(gè)空格為一個(gè)空格
$q = explode('',$kw);//枚舉關(guān)鍵字

這里還需要添加一個(gè)去掉標(biāo)點(diǎn)符號(hào)的代碼,但是這段代碼會(huì)出現(xiàn)問(wèn)題,不知道如何解決。

然后是生成SQL語(yǔ)句的代碼
復(fù)制代碼 代碼如下:
$f = array(”name”,”description”); //查詢的字段name=產(chǎn)品名,description=產(chǎn)品描述
$s = array(4,2); //權(quán)重,name字段匹配積分4分,description字段匹配積2分,最后按積分排序

復(fù)制代碼 代碼如下:
//創(chuàng)建查詢條件語(yǔ)句
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”;

  1. 求關(guān)于東北亞低碳綠色城市示例資料
    2024-08-17
  2. QQ空間按照什么原則自動(dòng)提取日志關(guān)鍵字?
    2024-08-17
  3. c++中關(guān)鍵字的分類
    2024-08-17
  4. asp.net 查詢出的關(guān)鍵字改變顏色怎么做?
    2024-08-17
  5. 靜態(tài)頁(yè)面關(guān)鍵字自動(dòng)生成功能怎么實(shí)現(xiàn)?
    2024-08-17
  6. 求一份單片機(jī)C語(yǔ)言編程的32個(gè)關(guān)鍵字和9種控制語(yǔ)句的主要作用表
    2024-08-17
  7. 關(guān)鍵字之間用什么符號(hào)最好?
    2024-08-17
  8. 關(guān)鍵字在貼吧怎么設(shè)置,就是在個(gè)人資料那個(gè)地方顯示的。藍(lán)色的字體的那種
    2024-08-17
  9. EXECL中如何用分式找出關(guān)鍵字,并帶上關(guān)鍵字的數(shù)量?
    2024-08-17
  10. 迅雷資源關(guān)鍵字嗅探模塊
    2024-08-17
  11. 在EXCEL中做了一個(gè)宏,通過(guò)查找一個(gè)關(guān)鍵字比如“帳戶|”,然后要把這個(gè)單元格所在的行刪除掉,怎么操作?
    2024-08-17
  12. JAVA 中的關(guān)鍵字,用于拋出異常
    2024-08-17
  13. 在excel中排序時(shí)主關(guān)鍵字上顯列標(biāo)?我按工資排序,為什么在主關(guān)鍵字里沒有工資這項(xiàng),只有像(行1,行2)等
    2024-08-17
  14. 怎樣在資產(chǎn)負(fù)債表內(nèi)輸入關(guān)鍵字“2010年2月25日”并生成報(bào)表數(shù)據(jù)
    2024-08-17
  15. 關(guān)鍵字的選擇何不合理?
    2024-08-17