我正在使用MongoDB来存储数百万的用户文档
每个文档都有first_name
和last_name
键(列)
该网站的访问者有一个单文本框,用于查询用户的数据库
我的目标是输入如下:
John Doe
和
Doe John
和
Dow Jones
应返回可能的名称列表,例如:
John Doe
,Doe John
,Dow Jones
,Joan Doe
,Johan Dow
等...
含义,应返回first_name / last_name-insensitive和'类似声音'的名称。
如何做到这一点?
编辑: 我不必在数据库引擎中这样做。应用级别搜索也是可以接受的。
答案 0 :(得分:1)
有许多phonetic algorithms与实现“听起来像”匹配有关。根据文化差异,例如拼写,发音和你的名字语料库中使用的语言,它们的效果各不相同。
最近的一篇文章Using Fuzzy Matching to Search by Sound with Python提供了一些可用选项的实用概述: