Google App Engine(Java)上的全文搜索

Dmi*_*tri 7 java lucene google-app-engine full-text-search

关于这个主题有几个线程浮动,但我认为我的用例有些不同.

我想做的事:

  • 我的GAE/J应用程序的全文搜索组件
  • 索引大小很小:25-50MB左右
  • 我不需要对索引进行实时更新,定期重新编制索引就可以了
  • 这是为了自动完成等,所以它需要非常快(我得到的印象是在数据存储区中实现反向索引会引入相当大的延迟)

到目前为止我的策略(只是计划,尚未尝试实施任何东西):

  • 将Lucene与RAMDirectory一起使用
  • 定期cron作业创建索引,将其序列化到数据存储区,存储更新ID(或时间戳)
  • 搜索servlet在启动时加载索引并创建RAMDirectory
  • 在每个请求上,servlet检查当前的更新ID并根据需要重新加载索引

我模糊的主要问题是如何在实例之间同步内存中的数据 - 这会起作用,还是我遗漏了什么?

另外,在我开始使用内存问题之前,我可以在多大程度上推送它?我在GAE的RAM配额上找不到任何东西.(这个索引很小,但我可以想到更多我想添加的东西)

当然,有关更好方法的任何想法吗?

Dmi*_*tri 0

好吧,从 GAE 1.5.0 开始,驻留后端似乎可以用来创建搜索服务。

当然,这些没有免费配额。