我正在寻找为小型 PHP/MySQL 应用程序实现模糊搜索。具体来说,我有一个包含大约 2400 条记录的数据库(以每年大约 600 条的速度添加记录,因此它是一个小型数据库)。感兴趣的三个字段是街道地址、姓氏和日期。我希望能够通过其中一个字段进行搜索,并且基本上可以容忍拼写/字符错误。即,“123 Main Street”的地址也应与“123 Main St”、“123 Main St.”、“123 Mian St”、“123 Man St”、“132 Main St”等匹配,名称也是如此和日期。
我对其他类似问题的回答的主要问题:
- 不可能为每个可能的错误拼写定义同义词,忘记为日期和名称定义同义词。
- Lucene 等对于这样一个有限的搜索数据集(称其最多为 5,000 条记录,每条记录 3 个字段)而言似乎非常重量级。
- 对于所有可能的拼写错误,仅仅使用通配符做一些事情似乎并不合乎逻辑。
有什么建议么?我知道不可能在本地使用 MySQL,但由于数据集非常有限,我想保持相对简单......也许是一个 PHP 类,它可以从数据库中获取所有记录,使用某种比较算法,并返回相似记录的 ID?
谢谢,杰森