MySQL 權重搜尋

2022-08-29 19:51:17 字數 1863 閱讀 1634

sql的模式匹配允許你使用「」匹配任何單個字元,而「%」匹配任意數目字元(包括零個字元)。在 mysql中,sql的模式預設是忽略大小寫的。

注意在你使用sql模式時,你不能使用=或!=;而使用like或not like比較操作符。

語法:select 字段 from 表 where 某欄位 like 條件

其中關於條件,sql提供了兩種種匹配模式:

1. 百分號(%):示任意個或多個字元,可匹配任意型別和長度的字元。

示例1:select * from character where name like 『%孫%';即匹配e姓名為「孫行者」,「行者孫,「行者孫」三行資料

示例2:select * from character where name like '%孫%' and name like '%行%'; 即匹配姓名為「孫行者」,「行者孫,「行者孫」三行資料

示例3:select * from character where name like '%孫%行%『;只能匹配姓名為「孫行者」一行資料

注意示例2和示例3的區別

2.下劃線():表示任意單個字元。匹配單個任意字元,它常用來限制表示式的字元長度語句:(可以代表乙個中文字元)

示例1:select * from character where name like 『三';即把姓名為「唐三藏」的一行資料

示例2:select * from character where name like 『_三';即把姓名為「唐三」一行資料

下面的方式效率較低,要對 tt.tt 列進行多次的 like 查詢

select  * from tt where tt.tt like '%鋼筋%' or tt.tt like '%混凝土%' or tt.tt like '%預應力%' or tt.tt like '%管樁%'
mysql 支援對列的正規表示式方式查詢。

select  * from tt where tt.tt regexp '鋼筋|混凝土|預應力'
權重搜尋涉及到幾個mysql 函式。

locate('鋼筋',tt.tt) : 查詢鋼筋在 tt.tt 列出現的位置,0 表示未找到。否則返回 座標位置,座標位置從1開始。

mysql 中 0 可以理解為 false 。 非0 數字可以理解為true

if( 表示式 , 1 , 0) : 判斷表示式結果, true 則返回 1 , false 則返回0

demo

select  * , ( if(locate('鋼筋',tt.tt) , 1, 0) + if(locate('混凝土',tt.tt) , 1, 0) + if(locate('預應力',tt.tt) , 1, 0) ) as weight from tt where 

tt.tt regexp '鋼筋|混凝土|預應力' order by weight desc

select  * , ( if(locate('鋼筋',tt.tt) , 1, 0) + if(locate('管樁',tt.tt) , 9, 0) + if(locate('預應力',tt.tt) , 1, 0) ) as weight from tt where 

tt.tt regexp '鋼筋|混凝土|預應力' order by weight desc

通過 replace ,將關鍵字 改為關鍵字即可。

mysql 權重搜尋

sql 匹配 和 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。注意在你使用sql模式時,你不能使用 或!而使用like或not like比較操作符。語法 select 字段 from 表 where 某欄位 li...

京東搜尋權重新規 京東搜尋權重衰退模型解讀

商品無緣無故排名自動掉到第二頁或者其他頁面了,是權重衰退的模型在干擾,京東整體的綜合得分是根據週期計算的,因為搜尋反饋是一直累計的,限制搜尋反饋是按照週期來計算。一起去了解一下吧!龐大的搜尋大資料,終於官宣了自己的最新模型了,這個模型可能讓大家雙十一過的有競爭力,您再也不用擔心倚老賣老了,新品依然有...

搜尋引擎如何計算權重

讀者可能已經發現了又乙個漏洞。在上面的例子中,詞 的 站了總詞頻的 80 以上,而它對確定網頁的主題幾乎沒有用。我們稱這種詞叫 應刪除詞 stopwords 也就是說在度量相關性是不應考慮它們的頻率。在漢語中,應刪 除詞還有 是 和 中 地 得 等等幾十個。忽略這些應刪除詞後,上述網頁的相似度就變成...