這個主題有幾條線索,但我認爲我的用例有些不同。Google App Engine上的全文搜索(Java)
我想要做什麼:
- 全文搜索組件爲我的GAE/J應用
- 指數尺寸小:我不需要實時更新到25-50MB左右
- 該索引,週期性重新索引是好的
- 這是爲了自動完成之類的,所以它需要非常快(我得到的印象是在數據存儲中實現倒排索引會引入相當長的延遲)
我的策略迄今(只是計劃,還沒有嘗試過實施任何事情):
- 利用Lucene與RAMDirectory
- 週期性cron作業創建索引,它系列化到數據存儲,存儲的更新ID(或時間戳)
- 搜索的servlet加載在啓動時的索引,並創建RAMDirectory
- 對每個請求該servlet檢查當前更新ID並重新加載必要的索引
我很模糊的主要問題是如何在實例之間同步內存中的數據 - 這項工作,還是我錯過了什麼?
另外,在我開始有內存使用問題之前,我能推多少?我找不到GAE的RAM配額。 (這個指數很小,但我可以想到更多的東西我想補充)
而且,當然,關於更好的方法的任何想法?
內存GAE實例之間的分離,所以直線上升的RAM目錄不會在它們之間共享。您必須在啓動時爲每個實例初始化它。鑑於新的備用服務器和熱身請求,這可能並不那麼糟糕。 – 2010-12-11 23:26:19
嗯,是的,這是我上面概述的一部分... – Dmitri 2010-12-13 08:07:12