2011-12-15 27 views
0

我正在構建一個Web解決方案,它將上載的文件放在S3上。上傳文件時,用戶可以添加元數據進行索引和存檔。我曾經計劃使用Lucene來達到這個目的,因爲之前我已經使用過很多次,但也注意到Amazon SimpleDB爲S3提供了一個對象元數據服務。使用lucene存儲索引元數據或Amazon SimpleDB?

我因缺乏維護和開銷服務的Web應用程序在機器上的,和SimpleDB的超過Lucene的一個位置索引文件中的分佈式特性吸引到SimpleDB的。

需求是當你輸入Lucene可以提供的web界面時,用戶需要有一個ajax搜索,但是SimpleDB也可以做這個有限的作用域應用程序通過Lucene使用SimpleDB索引來獲得或失去什麼?

感謝您的知識。

回答

1

我用的SimpleDB這樣的事情。除了零維護之外,SimpleDB的優點是基本上無限期地擴展。如果您想爲流量非常高的可能性構建架構,這真的只是一個優勢。

SimpleDB中的這樣做的主要缺點我看到的是:

  • 較高的延遲。 SimpleDB旨在實現巨大的可擴展性和高可用性。權衡是請求具有適度的延遲 - 對於像Lucene這樣的「本地」非分佈式服務或使用RDBMS文本搜索功能的請求具有更高的延遲。

  • 不太靈活文本搜索。簡單DB基本上具有類似於SQL的查詢語法,其支持常規=,!=,>,<等,並且還等,其中通配符「%」可以在字符串的開始出現任一,字符串或兩者的端部(例如「%keyword%」)。沒有辦法搜索正則表達式或更復雜的模式(除了通過將運算符與AND/OR結合可以執行的操作)。 注意:之前的LIKE條件僅支持字符串末尾的「%」 - 您可能會看到在網絡上編寫但不再存在的限制。

的SimpleDB也默認使用「最終一致性」模型(更新可能需要一段時間 - 秒的10秒有時 - 可見一致)。這是無法避免的可擴展性的結果。但是,我懷疑這對您的使用情況會是一個問題。

相關問題