【发布时间】:2016-12-29 12:07:23
【问题描述】:
我让 DynamoDB 存储用户配置文件。这里的主键是一个 id。密钥必须是 id。 用户个人资料包含他的用户名、一组朋友、... 所以现在这是第一个问题:用户 A 想通过他的名字搜索用户 B。每次发生这种情况时,我都不想进行完整的 DynamoDB 扫描。 因为我已经有了一个 redis 服务器,所以我可以在那里存储 username-id-pairs。
那么现在真正的问题是:我要搜索什么? 例如,我的用户名可能是 Eric1996。我的一个朋友不记得最后一位数字,所以他只搜索 Eric19。 或者也许他只是忘记了开头的大写字母并搜索了 eric1996。在另一种情况下,他可能会拼错名称,例如 erik1996、erick1996、erich1996。
我稍微搜索了该主题,并了解到有一种叫做语音算法的东西,它可以根据单词的发音来搜索单词。这将修复上面的示例。 但是这样的算法也适用于其他用户名吗?您现在有些用户想出了真正的 3x0tic 名称,或者只是使用随机字母。我认识一个在网上自称是 dadddddx__7 的人。 我认为这比拼写纠正器要困难得多,因为用户可能有一个故意拼错的名字
【问题讨论】:
标签: search redis amazon-dynamodb fuzzy-search phonetics