mysql 關(guān)鍵詞相關(guān)度排序方法詳細(xì)示例分析
mysql 關(guān)鍵詞相關(guān)度排序方法詳細(xì)示例分析【專家解說(shuō)】:小項(xiàng)目有時(shí)需要用到關(guān)鍵詞搜索相關(guān)性排序,用sphinx顯得殺雞用牛刀,就用mysql的order by對(duì)付下。方法一:復(fù)制
小項(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”;
-
求關(guān)于東北亞低碳綠色城市示例資料2024-08-17
-
QQ空間按照什么原則自動(dòng)提取日志關(guān)鍵字?2024-08-17
-
c++中關(guān)鍵字的分類2024-08-17
-
asp.net 查詢出的關(guān)鍵字改變顏色怎么做?2024-08-17
-
靜態(tài)頁(yè)面關(guān)鍵字自動(dòng)生成功能怎么實(shí)現(xiàn)?2024-08-17
-
求一份單片機(jī)C語(yǔ)言編程的32個(gè)關(guān)鍵字和9種控制語(yǔ)句的主要作用表2024-08-17
-
關(guān)鍵字之間用什么符號(hào)最好?2024-08-17
-
關(guān)鍵字在貼吧怎么設(shè)置,就是在個(gè)人資料那個(gè)地方顯示的。藍(lán)色的字體的那種2024-08-17
-
EXECL中如何用分式找出關(guān)鍵字,并帶上關(guān)鍵字的數(shù)量?2024-08-17
-
迅雷資源關(guān)鍵字嗅探模塊2024-08-17
-
在EXCEL中做了一個(gè)宏,通過(guò)查找一個(gè)關(guān)鍵字比如“帳戶|”,然后要把這個(gè)單元格所在的行刪除掉,怎么操作?2024-08-17
-
JAVA 中的關(guān)鍵字,用于拋出異常2024-08-17
-
在excel中排序時(shí)主關(guān)鍵字上顯列標(biāo)?我按工資排序,為什么在主關(guān)鍵字里沒有工資這項(xiàng),只有像(行1,行2)等2024-08-17
-
怎樣在資產(chǎn)負(fù)債表內(nèi)輸入關(guān)鍵字“2010年2月25日”并生成報(bào)表數(shù)據(jù)2024-08-17
-
關(guān)鍵字的選擇何不合理?2024-08-17