Google App Engine最好的Java文本索引库是什么?

Google App Engine最好的Java文本索引库是什么?,java,google-app-engine,full-text-indexing,Java,Google App Engine,Full Text Indexing,直到我知道指南针可以完成这项工作。但是使用指南针进行索引看起来相当昂贵。有更轻松的选择吗?是Java中全文索引的实际选择。看起来包含“Lucene目录的一个实现,用于在数据库中存储索引(使用Jdbc)。它与Compass代码库分离,可以用于纯Lucene应用程序。”以及大量其他内容。您可以尝试仅分离Lucence组件,从而剥离多个LIB,使其更加轻量级。或者干脆扔掉指南针,使用纯正的Lucene。对于Google App Engine,我看到的唯一索引库是,并描述了如何在上使用它。不过我还没有试

直到我知道指南针可以完成这项工作。但是使用指南针进行索引看起来相当昂贵。有更轻松的选择吗?

是Java中全文索引的实际选择。看起来包含“Lucene目录的一个实现,用于在数据库中存储索引(使用Jdbc)。它与Compass代码库分离,可以用于纯Lucene应用程序。”以及大量其他内容。您可以尝试仅分离Lucence组件,从而剥离多个LIB,使其更加轻量级。或者干脆扔掉指南针,使用纯正的Lucene。

对于Google App Engine,我看到的唯一索引库是,并描述了如何在上使用它。不过我还没有试过

我使用过(指南针的基础)并发现它工作得很好,而且花费相对较低。索引是一项任务,您可以在适合应用程序的时间安排该任务


中提到了一些替代索引项目,包括和。但我还没有检查过这两个,因为Lucene做了我需要的一切。老实说,我不知道Lucene在索引方面是否会比Compass轻(为什么会这样,Compass不使用Lucene吗?)

无论如何,因为你要求其他选择,所以有。我引述如下:

受到讨论的启发, 我实现了一个基于google的数据存储 Lucene组分,GAELucene,可以 帮助您在上运行搜索应用程序 谷歌应用引擎

盖卢新世的主要层位包括:

  • GAEDirectory-基于google数据存储的只读目录
  • GAEFile-表示索引文件,该文件的字节内容将是 拆分为多个GAEFileContent
  • GAEFileContent-表示索引文件的一段
  • GaeCegory-不同索引的标识符
  • GAEIndexInput-内存驻留IndexInput?像 RAMInputStream
  • GAEIndexReader-IndexReader的包装器?缓存在 GAEIndexReaderPool
  • GAEIndexReaderPool-GAEIndexReader的池
下面的代码片段 演示了gaelucenedo的用法 搜索:

Query queryObject = parserQuery(request);
GAEIndexReaderPool readerPool = GAEIndexReaderPool.getInstance();
GAEIndexReader indexReader = readerPool.borrowReader(INDEX_CATEGORY_DEMO);
IndexSearcher searcher = newIndexSearcher(indexReader);
Hits hits = searcher.search(queryObject);
readerPool.returnReader(indexReader);
我强烈建议阅读关于nabble的整个讨论,内容非常丰富


以防万一,关于Compass,Shay Banon在这里写了一篇博客文章,详细介绍了如何在App Engine中使用Compass:

Google App Engine内部搜索似乎更好,甚至还有一些支持同义词:


如果您想在GAE上运行Lucene,您还可以查看。这是Lucene对GAE的实现

使用方法其实很简单,只需将Lucene的一个标准目录替换为
GaeDirectory

Directory directory = new GaeDirectory("MyIndex");
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_43, analyzer);
IndexWriter writer = new IndexWriter(directory, config);
...
似乎处于“维护模式”(自2009年9月以来没有提交),并且在应用程序中使用版本4时(尚未)不起作用


免责声明:我是《卢加尼》的作者。

是的,我可能会走这条路。我对使用Lucene的担忧是,应用程序引擎的IO成本非常高,我希望有人已经生产了Lucene的优化版本或考虑到极高IO成本的自制库。请记住,GAELucene不允许您在GAE中构建索引。你应该在某个地方准备索引文件并上传到GAE。谷歌代码中还有一条说明:“GAELucene不适合运行大索引,它更适合小索引,大约100Mb。对于变化较大的索引,你需要找到其他解决方案。”。