2011-11-18 144 views
5

我決定使用ElasticSearch作爲我的搜索網站的主要數據的主要存儲。它是一個NoSQL數據庫,提供全文搜索和其他強大的搜索功能。ElasticSearch,用於用戶和社交數據的數據存儲?

將我的用戶數據和社交關係存儲在ElasticSearch引擎中也有用嗎?或者我應該將其存儲在單獨的數據庫中?

+0

是的,我看到了這個問題,但我很好奇,特別是社會和用戶數據在彈性搜索數據庫中是否可行。 – onejigtwojig

+0

沒有關於您的「用戶數據」和「社交關係」的更多細節以及您想要如何查詢或彙總數據的具體示例,除了「是的,您可以做到這一點並且它會有用」 。 – karmi

+0

用戶數據,如登錄信息,密碼,配置文件信息。社交數據包括關注者列表和用戶關注的列表。您可以在Twitter中找到相同類型的定向關係。 – onejigtwojig

回答

3

我會說,繼續並將所有的信息保存在ElasticSearch 只有如果你能以某種方式保護數據庫的安全。 AFAIK,ES不支持通過身份驗證,密鑰等保護應用程序的任何方法。因此,如果您無法保護該數據,那麼您肯定不希望將任何用戶登錄詳細信息放在那裏。

在我的應用程序中,我只阻止了對我的ES實例的端口訪問。然後,我在node.js的ES上建立了一個服務層。我在進入數據層之前處理所有的身份驗證。

關於ES的一件事是,更多的數據不一定會減慢查詢除非您索引所有數據或查詢它。如果您只需要檢索這些數據,那麼您可以隨時獲取「_source」文檔。確保你有光盤空間來處理你的數據,但除此之外,我會說保存所有 - 並在你的索引和如何做策略。

+0

感謝您的提示。我不相信ES有安全機制。我會跟隨並阻止ES訪問端口。謝謝! – onejigtwojig

+0

另外,並非每個添加到Elastic Search的文檔都自動編入索引?只是抓住「_source」文件就不確定你的意思。將不得不仔細看看文檔.. – onejigtwojig

+0

那麼,「分析」將是一個更好的方式來說明這一點。如果您有許多需要進行文本分析的屬性,那麼這會降低查詢速度。當您從ES檢索文檔時,返回的屬性之一是「_source」 - 其中包含整個文檔。 – swatkins