显示Lucene索引的内容

时间:2013-01-05 00:18:16

标签: lucene luke

我正在尝试在Lucene中调试索引文档,我需要查看索引的内容,以便我可以确切地看到文档是如何编入索引的。据说Luke做到了这一点,但是没有任何文档,当我把它指向索引目录时(在任何一个,虽然我不知道为什么它无法弄清楚哪一个是正确的) ,我一无所获。当然有一些简单的方法可以做到这一点吗?

4 个答案:

答案 0 :(得分:13)

卢克是一种简单的方法。你运行它,浏览索引,然后去参加比赛。不可能更容易。 This blog post逐步使用一些Luke功能,也许它可以帮助你开始使用它。

还有其他工具,例如LIMO也是一个不错的工具,但它比Luke更难开始。

也许如果你提供一些关于Luke遇到的问题的细节,你将能够得到一些帮助。

答案 1 :(得分:3)

我对Luke不太了解,但我和Lucene一起工作了很多。要查看索引的内容可能会很棘手,即使使用Luke也是如此,因为您只能看到存储字段的数据。

对于我做过的最后一个Lucene项目(实际上是Solr),我几乎将每个字段标记为已编制索引但未存储。对于这些情况,为了测试文档是否具有正确的索引术语,我将查询具有给定主键和预期术语的文档的索引。如果它匹配,那么我知道它用该术语索引它。

例如,我想说,看看产品5是否是英文版 productId:5和lang:en

我知道这并没有直接回答你关于如何使用卢克的问题,但如果卢克无法帮助你,这可能是另一种选择。

答案 2 :(得分:1)

Luke尝试在使用" Reconstruct&amp ;;编辑"来自" Documents"的按钮;标签。如果我没记错的话,停止的话就不会出现在"重建&编辑"显示 - 您会看到" null_1"," null_2"等等。

答案 3 :(得分:1)

可以在将源弹性搜索格式添加到Luke MetaINF / services中时从源代码编译luke。

按照这种方法

Using Luke with ElasticSearch

也可以使用LUcene

测试自定义发布格式/编解码器

ElasticSearch使用自定义发布格式(发布格式定义了倒置索引在内存中/磁盘上的表示方式),并且Luke不知道它。要告诉Luke有关ES发布格式的信息,请按照以下步骤添加SPI类。

  1. Clone Luke source repositry:
  2. 2.将所需版本的ElasticSearch依赖于Luke项目的pom文件:

    <!-- ElasticSearch -->
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>1.1.1</version>
    </dependency>
    
    1. 编译Luke jar文件(创建target / luke-with-deps.jar):

      $ mvn package

    2. 4.将Luke的已知发布格式列表解压缩到临时文件中:

      $ unzip target/luke-with-deps.jar META-INF/services/org.apache.lucene.codecs.PostingsFormat -d ./tmp/
      Archive:  target/luke-with-deps.jar
        inflating: ./tmp/META-INF/services/org.apache.lucene.codecs.PostingsFormat
      
      1. 将ElasticSearch张贴格式添加到临时文件中:

        $ echo&#34; org.elasticsearch.index.codec.postingsformat.BloomFilterPostingsFormat&#34;

          
            

        ./ TMP / META-INF /服务/ org.apache.lucene.codecs.PostingsFormat     $ echo&#34; org.elasticsearch.index.codec.postingsformat.Elasticsearch090PostingsFormat&#34;     ./tmp/META-INF/services/org.apache.lucene.codecs.PostingsFormat     $ echo&#34; org.elasticsearch.search.suggest.completion.Completion090PostingsFormat&#34;     ./tmp/META-INF/services/org.apache.lucene.codecs.PostingsFormat

          
      2. 将修改后的文件重新打包回jar:

        $ jar -uf target / luke-with-deps.jar -C tmp / META-INF / services / org.apache.lucene.codecs.PostingsFormat

      3. 运行Luke

        $。/ luke.sh