一個商品表goods,大概2千萬條資料
goods中有欄位shop_name和goods_name
現在有個需求,用戶輸入搜索關鍵字進行查找,需要按關鍵字的相關性或匹配度排序
現在關鍵字用了hanlp的中文分詞進行處理,然后進行查找。
比如:小浣熊嬰兒爽身粉 分詞處理后為:小浣熊 爽身粉 嬰兒
關鍵詞不固定,以用戶輸入進行分詞
現在的sql陳述句為
select * from goods where concat(shop_name,goods_name) regexp '小浣熊|爽身粉|嬰兒'
需要的是:商品標題同時匹配關鍵字高的在前面,店鋪名中包含關鍵詞的也排在前面。這需要如何寫sql呢
uj5u.com熱心網友回復:
模糊搜索好像用不了索引uj5u.com熱心網友回復:
做了分詞,資料庫里面不是應該用全文檢索么?怎么又直接用 正則匹配了?uj5u.com熱心網友回復:
可以參考一下這個https://blog.csdn.net/u011734144/article/details/52817766
uj5u.com熱心網友回復:
避免全文檢索,為了性能考慮。uj5u.com熱心網友回復:
原子性,加列, 加索引或者, 分表吧, 2000w.....
uj5u.com熱心網友回復:
使用正則不走索引,建議你用like,有索引的話會快很多轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85479.html
標籤:MySQL
