php - mysql 模糊搜索問題
問題描述
各位請問我如何匹配以下關(guān)鍵詞
如數(shù)據(jù)庫種存儲字符為:sfsdf4-1bbsdfsd;
用戶輸入41bb、4 1bb,也能匹配到此字符串
這該如何去做?謝謝
問題解答
回答1:你需要的不是 mysql 模糊搜索了吧。 需要搜索引擎的支持。
回答2:新建一個字段,存儲去掉需要忽略的特殊字符后的字符串,比如 : sfsdf41bbsdfsd,查詢的時候,也對關(guān)鍵字進行同樣的操作,用新的字段去匹配
回答3:MySQL 支持正則表達(dá)式搜索,例如 SELECT name FROM person_tbl WHERE name REGEXP ’^[aeiou]|ok$’;
回答4:我覺得應(yīng)該先處理用戶提交的數(shù)據(jù),以空格分割線分割用戶提交的數(shù)據(jù),組成一個數(shù)組,然后用這個數(shù)組中的數(shù)據(jù)進行模糊查詢,之后取出相同的數(shù)據(jù)。。。但是在大量用戶以此種方式查詢的情況下,我認(rèn)為你的系統(tǒng)會被拖得很慢很慢,所以不建議用這種設(shè)計模式
回答5:題主的問題設(shè)置到分詞搜索了,直接進行模糊搜索匹配不到的,使用正則表達(dá)式搜索的話效率太差,不推薦,而且場景太多了,自己開發(fā)實現(xiàn)的話,很難全部都考慮到.推薦使用一個搜索引擎吧,sphinx就很好用,對mysql的支持也很好.題主有php標(biāo)簽,如果常用php開發(fā)的話,用迅搜也很好,http://www.xunsearch.com/ 國人開發(fā)的,全中文的文檔,用起來也很方便.
回答6:用搜索引擎吧,人家就是專業(yè)干這個的
相關(guān)文章:
1. docker-compose中volumes的問題2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. boot2docker無法啟動4. nignx - docker內(nèi)nginx 80端口被占用5. javascript - mock.js可以存儲數(shù)據(jù)嗎6. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.7. java - SSH框架中寫分頁時service層中不能注入分頁類8. docker api 開發(fā)的端口怎么獲取?9. docker容器呢SSH為什么連不通呢?10. dockerfile - 為什么docker容器啟動不了?

網(wǎng)公網(wǎng)安備