用于搜索用户名的语音算法

时间:2016-12-29 12:07:23

标签: search redis amazon-dynamodb fuzzy-search phonetics

我让DynamoDB存储用户个人资料。这里的主键是id。密钥必须是id。 用户个人资料包含的信息,如他的用户名,一组朋友,...... 所以现在这是第一个问题:用户A希望通过他的名字搜索用户B.我不希望每次发生这种情况时都进行完整的DynamoDB扫描。 由于我已经有了redis服务器,我可以在那里存储用户名-id-pair。

所以现在真正的问题是:我要搜索什么? 例如,我的用户名可能是Eric1996。我的一个朋友不记得最后的数字所以他只是搜索Eric19。 或许他只是在开始时忘记大写字母并搜索eric1996。在另一种情况下,他可能会错误地将名称拼错为erik1996,erick1996,erich1996。

我搜索了一下这个主题,并且知道有一种叫做语音算法的东西可以通过它们的声音来搜索单词。这将修复上面的例子。 但是这些算法是否适用于其他用户名?你现在有些用户提出了真正的3x0tic名称或只是使用随机字母。我认识一个人在网上叫爸爸,就像爸爸爸爸一样。 我认为这比拼写纠正器困难得多,因为用户可能有一个故意拼写错误的名称

1 个答案:

答案 0 :(得分:0)

Dynamodb或redis是一个不正确的工具,可满足您的要求。 我建议使用dyanmodb或redis作为数据存储区,并使用Solr或ElasticSearch(或他们的AWS版Amazon CloudSearch,它提供solr和elasticsearch) 您可以将您的用户配置文件存储在dynamodb中,并在搜索存储中存储可搜索的字段(您甚至可以在搜索存储中存储完整的配置文件)。 然后搜索拼写错误等功能,根据某些分数对朋友进行排名很容易实现。