成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

百度二面,MySQL 怎么做權重搜索?

數據庫 MySQL
搜索引擎做這種搜索需求當然得天獨厚,但是這種在 MySQL 中進行權重搜索的需求也不是沒有,業務初期數據量還不大的時候大概率不會考慮上 ES,這時候在 MySQL 中先簡單跑通邏輯才是最重要的。

考慮這樣一個搜索需求,有一個 MySQL 表,表中很多個列存放著不同的內容,希望用戶通過關鍵詞進行搜索的時候,能夠模糊匹配多個列,比如有 t1 列、t2 列、t3 列,同時還希望 t1 列的匹配權重最高,t3 列的匹配權重最低。簡單說就是如果有一個關鍵詞同時出現在記錄 A 的 t1 列 和里記錄 B 的 t2 列,那么記錄 A 應該優先展示,排序是在前面的。

注意這里是 MySQL,不是 ES,搜索引擎做這種搜索需求當然得天獨厚,但是這種在 MySQL 中進行權重搜索的需求也不是沒有,業務初期數據量還不大的時候大概率不會考慮上 ES,這時候在 MySQL 中先簡單跑通邏輯才是最重要的。

思考下該如何做?

模糊匹配

首先模糊匹配大家最常用的就是 like

SELECT * FROM test 
WHERE t1 LIKE '%標題%' 
 or t2 LIKE '%內容%' 
 or t3 LIKE '%注釋%''

當只需要簡單的模式匹配時 like 確實往往是更好的選擇。而在需要進行復雜匹配,如同一字段中包含多個模式,進行分組匹配等,REGEXP 則表現更為突出,Mysql 支持對列的正則表達式方式查詢,使用方式如下:

SELECT  * FROM test 
WHERE t1 regexp '標題'
 or t2 regexp '內容' 
 or t3 regexp '注釋'

權重搜索

權重搜索涉及到幾個 Mysql 函數。

  • LOCATE('標題', test.t1) : 查詢 "標題" 在 test.t1 列出現的位置,0 表示未找到。否則返回 坐標位置,坐標位置從 1 開始。
  • IF( 表達式, 1, 0):判斷表達式結果,TRUE 則返回 1,FALSE 則返回 0

下面我們來看如何基于這兩個函數來實現文章開頭的需求:

SELECT  *, ( 
    IF(LOCATE('標題',test.t1), 1, 0) 
     + IF(LOCATE('內容',test.t2) , 1, 0) 
     + IF(LOCATE('注釋',test.t3) , 1, 0) 
 ) AS weight 
FROM test 
WHERE test.t1 regexp '標題'
 or test.t2 regexp '內容' 
 or test.t3 regexp '注釋' 
order by weight desc

上面的查詢中,每個關鍵詞的權重都是 1,所以,在這 t1\t2\t3 三列中,關鍵詞出現次數最多的記錄將出現在搜索結果的第一位。

如果權重增加,那么權重高的關鍵詞將會影響排序規則。如下例子,將 t1 列的搜索權重改為 7:

SELECT  *, ( 
    IF(LOCATE('標題',test.t1), 7, 0) 
     + IF(LOCATE('內容',test.t2) , 2, 0) 
     + IF(LOCATE('注釋',test.t3) , 1, 0) 
 ) AS weight 
FROM test 
WHERE test.t1 regexp '標題'
 or test.t2 regexp '內容' 
 or test.t3 regexp '注釋' 
order by weight desc


責任編輯:武曉燕 來源: 飛天小牛肉
相關推薦

2011-05-27 13:27:34

權重SEO

2011-06-21 16:11:44

SEO

2021-06-07 05:46:20

前端架構前端架構

2011-10-28 16:19:21

百度搜索

2011-05-17 18:01:52

搜索引擎優化

2024-06-19 08:02:33

2014-11-24 10:28:51

2019-08-26 13:01:07

百度流量搜索

2021-01-28 06:07:32

百度搜索搜索引擎 應用

2012-11-16 11:01:50

移動搜索ASO

2023-09-04 00:00:07

百度長連接網絡

2011-06-01 17:40:29

百度收錄

2015-07-06 17:03:31

云計算百度

2023-06-13 08:25:14

注冊中心Nacos上線

2018-10-19 10:05:14

區塊鏈百度百度搜索

2023-07-18 08:28:58

注冊中心下線Nacos

2015-09-24 14:06:24

百度搜索Windows 10

2024-07-22 19:31:34

2012-11-25 15:42:47

互聯網百度搜索

2013-08-22 17:08:50

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美综合在线视频 | 日韩欧美网 | 久色网 | 亚洲成人av| 人人干人人超 | 国产精品毛片av | 熟女毛片 | а天堂中文最新一区二区三区 | 国产aa| 国产一级淫片a直接免费看 免费a网站 | 中文字幕av网站 | 日本五月婷婷 | 欧美三级三级三级爽爽爽 | 日本久久黄色 | 美国一级黄色片 | 在线看av网址 | 人碰人操 | 中文av网站 | 日韩视频免费看 | 国产乱码精品一区二区三区五月婷 | 亚洲一区二区三区在线观看免费 | 日本高清在线一区 | 美美女高清毛片视频免费观看 | 久久精品一区二区三区四区 | 国产精品欧美一区喷水 | 久久久影院 | 雨宫琴音一区二区在线 | 在线观看视频中文字幕 | 欧美日韩在线一区 | 欧美性猛交一区二区三区精品 | 免费在线黄 | 欧美日韩在线一区二区三区 | 蜜臀久久| 欧美激情第一区 | 日韩精品av一区二区三区 | 在线观看免费av片 | 91精品国产91久久久久久最新 | 黄色大片免费看 | 在线天堂免费中文字幕视频 | www.五月婷婷.com | 拍真实国产伦偷精品 |