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