6

我正在尝试使用全文搜索和 SOUNDEX 实现名字和姓氏搜索(以防名称拼写错误)。

我试图做类似的事情

SELECT * 
    FROM employees 
WHERE 
    MATCH SOUNDEX(first_name, last_name) AGAINST SOUNDEX('John 1969 Ivan')

但这不是有效的语法。

我想要实现的是,当用户键入例如“Jon Ivan”时,列

first_name | last_name
----------------------
  John        Ivan

会匹配。

先感谢您!

4

1 回答 1

2

MySQL 在文本搜索、模糊搜索、拼写错误等方面往往表现不佳。我强烈推荐像Solr这样的索引解决方案。Solr 支持四种不同类型的语音搜索:Soundex、RefinedSoundex、Metaphone 和 DoubleMetaphone。它具有地理空间搜索和拼写错误搜索以及蝴蝶/蝴蝶搜索。我想你会对你得到的结果感到非常满意。与 MySQL 相比,它快如闪电

于 2013-04-08T20:48:58.430 回答