php - mysql 模糊搜索問題
問題描述
各位請問我如何匹配以下關(guān)鍵詞
如數(shù)據(jù)庫種存儲字符為:sfsdf4-1bbsdfsd;
用戶輸入41bb、4 1bb,也能匹配到此字符串
這該如何去做?謝謝
問題解答
回答1:你需要的不是 mysql 模糊搜索了吧。 需要搜索引擎的支持。
回答2:新建一個(gè)字段,存儲去掉需要忽略的特殊字符后的字符串,比如 : sfsdf41bbsdfsd,查詢的時(shí)候,也對關(guān)鍵字進(jìn)行同樣的操作,用新的字段去匹配
回答3:MySQL 支持正則表達(dá)式搜索,例如 SELECT name FROM person_tbl WHERE name REGEXP ’^[aeiou]|ok$’;
回答4:我覺得應(yīng)該先處理用戶提交的數(shù)據(jù),以空格分割線分割用戶提交的數(shù)據(jù),組成一個(gè)數(shù)組,然后用這個(gè)數(shù)組中的數(shù)據(jù)進(jìn)行模糊查詢,之后取出相同的數(shù)據(jù)。。。但是在大量用戶以此種方式查詢的情況下,我認(rèn)為你的系統(tǒng)會被拖得很慢很慢,所以不建議用這種設(shè)計(jì)模式
回答5:題主的問題設(shè)置到分詞搜索了,直接進(jìn)行模糊搜索匹配不到的,使用正則表達(dá)式搜索的話效率太差,不推薦,而且場景太多了,自己開發(fā)實(shí)現(xiàn)的話,很難全部都考慮到.推薦使用一個(gè)搜索引擎吧,sphinx就很好用,對mysql的支持也很好.題主有php標(biāo)簽,如果常用php開發(fā)的話,用迅搜也很好,http://www.xunsearch.com/ 國人開發(fā)的,全中文的文檔,用起來也很方便.
回答6:用搜索引擎吧,人家就是專業(yè)干這個(gè)的
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. javascript - 求賜教:網(wǎng)易郵箱Web端模擬登錄看信的加密參數(shù)_ntes_nnid、_ntes_nuid3. javascript - 使用angular 的ui-sref 中出現(xiàn)了中文參數(shù),點(diǎn)擊跳轉(zhuǎn)后瀏覽器的地址欄里出現(xiàn)轉(zhuǎn)義后的%AE....%a%44. java - ConcurrentHashMap中的get()方法為什么可以不加鎖?5. javascript - QWebEngineView 如何爬 angular 的動態(tài)數(shù)據(jù)?6. html5 - 這個(gè)代碼顯示功能如何實(shí)現(xiàn)?7. javascript - 用JS 七牛上傳圖片出現(xiàn)文件已存在的錯(cuò)誤(file exists)8. 工作近5年,3年Java Web ,近2年前端,未來何去何從?9. css3 - 圖片等比例縮放10. java - 字節(jié)流轉(zhuǎn)成字符串之后,在通過字符串轉(zhuǎn)成字節(jié)流后的文件為什么會不一樣?
