由于实验性搜索API的限制,我决定使用Apache Lucene来满足我的全文搜索需求。我看过Lucene的AppEngine端口但是它们不适合我的需求(使用RAMIndex的那些不支持我的索引的大小,而使用数据存储的那些在性能上太慢了)所以我已经用我的测试了Lucene本地文件系统,发现它对我来说很完美。
现在我的问题是如何让它在AppEngine上运行。我们不允许写入文件系统,但这很好,因为他的索引是在我的开发机器上创建的,并且在服务器上是只读的(我会定期更新索引并需要推送新索引)。允许从文件系统中读取,因此我认为我可以将我的索引与其他静态文件捆绑在一起并可以访问它。
我遇到的问题是AppEngine静态文件配额(页面底部的https://developers.google.com/appengine/docs/java/runtime)。我的索引只有大约750MB,所以我对“总文件< 1GB”前端很好,但是我的一些索引文件是几百MB,因此每个文件最多32 MB,因此不允许在AppEngine上使用。
有没有办法在AppEngine上部署和读取大于32 MB的静态文件?或者我将不得不设置一些其他服务器(例如亚马逊)只是为了阅读我的Lucene索引?
答案 0 :(得分:1)
使用750MB文件,您必须使用BlobStore或Google云端存储。
如果您可以在Lucene中更改访问静态文件的代码,则可以使用BlobStore或Cloud Storage的请求来读取文件。但是,如果静态文件只是选项,则必须将索引拆分为32MB。
如果更改Lucene文件访问的代码,则每个读取请求的限制为32MB。因此,文件必须分片阅读。