我正在使用MongoDB存储数百万用户文档。
每个文档都有一个first_name
和last_name
键(列)。
网站的访问者有一个文本框,用于为用户查询数据库。
我的目标是输入如下:John Doe
和Doe John
和Dow Jones
应返回可能的名称列表,例如:John Doe
,Doe John
,Dow Jones
,Joan Doe
,Johan Dow
等。。。
也就是说,应该返回不区分名字/姓氏和“听起来像”的名字。
怎么能做到?
编辑:
我不需要在数据库引擎里做。应用程序级搜索也是可以接受的。
最佳答案
有许多phonetic algorithms与实现“听起来像”匹配相关。根据不同的文化差异,例如拼写、发音和在你的名字语料库中使用的语言,这些都有不同的效果。
最近的一篇文章提供了一些可用选项的有用概述:
Using Fuzzy Matching to Search by Sound with Python
Soundex
NYSIIS
关于python - 如何在MongoDB/Python/Django中按名字和姓氏搜索用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11282457/