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