2016-12-29 28 views
0

我讓DynamoDB存儲用戶配置文件。這裏的主鍵是一個id。密鑰是一個id是必要的。 用戶配置文件包含諸如他的用戶名,一組朋友等信息...... 所以現在這是第一個問題:用戶A想要通過他的名字搜索用戶B.每次發生這種情況時,我都不想執行完整的DynamoDB掃描。 因爲我已經有了redis服務器,但我可以在那裏存儲用戶名 - 密碼對。要搜索用戶名的語音算法

所以,現在真正的問題:我要搜索什麼? 例如我的用戶名可能是Eric1996。我的一個朋友不記得最後的數字,所以他只搜索Eric19。 或者也許他只是在開頭忘記大寫字母並搜索eric1996。在另一種情況下,他可能拼錯了名字,如erik1996,erick1996,erich1996。

我搜索了一下這個話題,並發現有一些叫做語音算法的東西,它們通過它們的聲音來搜索單詞。這將修復上面的例子。 但是這樣的算法是否也適用於其他用戶名?你現在有些用戶提出了真正的3x0tic名稱或只是使用隨機字母。我知道一個叫dselddddx__7在線的人。 我認爲這比拼寫更正困難得多,因爲用戶可能有一個故意拼錯的名字

回答

0

Dynamodb或redis是您的需求的不正確的工具。 我建議使用dyanmodb或redis作爲您的數據存儲,並使用Solr或ElasticSearch(或其AWS版Amazon CloudSearch,它提供solr和elasticsearch) 您可以將用戶配置文件存儲在dynamodb中,並將搜索字段存儲在搜索存儲中(您甚至可以在搜索存儲中存儲完整的配置文件)。然後搜索諸如拼寫錯誤等功能,根據某些分數對朋友排名很容易實現。