代码之家  ›  专栏  ›  技术社区  ›  user242726

谷歌App Engine的最佳Java文本索引库是什么?

  •  7
  • user242726  · 技术社区  · 16 年前

    到目前为止,我知道指南针可以处理这项工作。但是用指南针做索引看起来很昂贵。有没有更轻的选择?

    5 回复  |  直到 13 年前
        1
  •  4
  •   Asaph    16 年前

    Apache Lucene 是Java中全文索引的事实上的选择。看起来像 Compass Core 包含“Lucene目录的实现,用于将索引存储在数据库中(使用JDBC)。它与Compass代码库分离,可以与纯Lucene应用程序一起使用。您可以尝试只分离Lucence组件,从而剥离几个lib,使其更轻。或者干脆用圆规或者沟规,用纯天然的露西。

        2
  •  6
  •   Pascal Thivent    16 年前

    老实说,我不知道Lucene在索引方面是否比Compass轻(为什么,Compass不使用Lucene?).

    不管怎样,因为你要求其他的选择 GAELucene . 我引用 its announcement 以下:

    受到讨论的启发” Can I run Lucene in google app engine? “ 我实现了一个基于谷歌数据存储的 Lucene组分,gaeluocene,可 帮助您在上运行搜索应用程序 谷歌应用引擎。

    盖鲁新世的主要克拉泽包括:

    • gaedirectory-基于Google数据存储的只读目录。
    • gaefile-表示索引文件,文件的字节内容将 拆分为多个gaefileContent。
    • gaefileContent-表示索引文件的一段。
    • gaecategory-不同索引的标识符。
    • gaeindexinput-内存驻留索引输入?像这样的实现 兰溪溪
    • gaeindexreader-indexreader的包装?缓存在 gaeindexreaderpool(gaeindexreaderpool)
    • gaeindexreader pool-gaeindexreader的池

    以下代码段 演示了gaelucene-do的用法 搜索:

    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的整个讨论,内容非常丰富。

    为了以防万一,关于指南针,Shay Banon写了一篇博客,详细介绍了如何在应用程序引擎中使用指南针: http://www.kimchy.org/searchable-google-appengine-with-compass/

        3
  •  1
  •   Community Mohan Dere    9 年前

    对于Google应用程序引擎,我看到的唯一索引库是 appengine-search ,并说明如何在 this page . 不过我还没试过。

    我已经用过 Lucene (哪个罗盘是以哪个为基础的)并且发现它工作得很好,费用相对较低。索引是一项任务,您可以在应用程序工作的时间安排该任务。

    中提到了一些替代索引项目。 this SO thread 包括 Xapian minion . 不过,我都没有检查过,因为露西做了我所需要的一切。

        4
  •  0
  •   Alon Gutman    13 年前

    谷歌应用程序引擎的内部搜索似乎更好,甚至还有havsupport的同义词:

    https://developers.google.com/appengine/docs/java/search/

        5
  •  0
  •   Sven Jacobs    13 年前

    如果你想在gae上运行lucene,你也可以看看 LuGAEne . 这是Lucene的一个实现 Directory 为了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);
    ...
    

    gaelucene 似乎处于“维护模式”(自2009年9月以来无承诺)和 lucene-appengine 使用时还不能工作 Objectify 应用程序中的版本4。

    免责声明:我是卢格涅的作者。