猿问

如何在MYSQL中使用PHP对公司名称进行模糊匹配以实现自动完成?

我的用户将通过剪切导入并粘贴包含公司名称的大字符串。


我有一个公司名称的现有且不断发展的MYSQL数据库,每个数据库都有一个唯一的company_id。


我希望能够解析字符串并为每个用户输入的公司名称分配模糊匹配。


现在,仅进行直线字符串匹配也很慢。** Soundex索引编制会更快吗?我如何在用户输入时给他们一些选择?**


例如,某人写道:


微软->微软

裸机必备->裸机必备

Polycom,Inc.-> Polycom


互换的青春
浏览 726回答 3
3回答

慕标5832272

SOUNDEX是一个不错的算法,但是在该主题上已有最新进展。创建了另一个算法,称为Metaphone,后来将其修订为Double Metaphone算法。我已经亲自使用了双元音的java apache commons实现,它是可定制的和准确的。他们在Wikipedia页面上也有许多其他语言的实现。已经回答了这个问题,但是如果您发现应用程序中出现了SOUNDEX的任何已确定的问题,很高兴知道有选项。有时,它可以为两个完全不同的单词生成相同的代码。创建了双重对讲机来帮助解决该问题。维基百科被盗:http://en.wikipedia.org/wiki/Soundex为了应对Soundex算法的不足,劳伦斯·飞利浦(Lawrence Philips)为此目的开发了Metaphone算法。飞利浦后来开发了对Metaphone的改进,他将其称为Double-Metaphone。Double-Metaphone包含比其前任更大的编码规则集,可处理非拉丁字符的子集,并返回主要和次要编码,以说明单个单词在英语中的不同发音。在双变音位页面的底部,他们具有针对各种编程语言的实现:http : //en.wikipedia.org/wiki/Double-MetaphonePython和MySQL实施:https://github.com/AtomBoy/double-metaphone
随时随地看视频慕课网APP

相关分类

Java
MySQL
我要回答