DB中存儲30000000行。所有行都包含firstName和lastName。 我想用的firstName或lastName的查詢數據,但我發現,一些lastName的含有不能被當前查詢有正常firstName和lastName指數mysql如何增強名稱模糊匹配
例特殊字符:Susanna [Von Essen] ,Susanna VonEssen , Susanna Von Essen
不同的lastName包含特殊字符,那麼有什麼辦法可以增強查詢這3種名稱(相同的姓氏)?
仿真理想的結果:
查詢:select *from provider where lastName like 'Von%'
結果:Susanna Von Essen,Susanna [Von Essen],Susanna VonEssen
查詢:select *from provider where lastName like 'Von Essen%'
結果:Susanna Von Essen,Susanna [Von Essen],Susanna VonEssen
謝謝!
有SOUNDEX()函數會返回字符串類似的語音https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_soundex。另請參閱http://www.databasejournal.com/features/mysql/mysql-fuzzy-text-searching-using-the-soundex-function.html,但我認爲MySQL不太擅長模糊搜索。我會建議Elasticsearch出於這種目的。 –
函數不支持索引搜索,這會使搜索慢一些,elasticsearch是可以的,但是現在不可能使用db遷移 –