为什么卢克(4.0.0-ALPHA)不能打开Lucene4.0的索引文件?

时间:2013-01-03 03:25:09

标签: lucene luke

我使用Lucene4.0制作索引文件:

File directorycreate = new File(indexpath);         
                Directory dir = new SimpleFSDirectory(directorycreate);
                Analyzer analyzer = new IKAnalyzer(true);
                IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_40, analyzer);
                IndexWriter writer = new IndexWriter(dir,conf);
                    Document document = new Document();
                    FieldType fieldtype = new FieldType();
                    fieldtype.setIndexed(true);
                    fieldtype.setTokenized(true);
                    fieldtype.setStored(true);
                    fieldtype.setStoreTermVectorPositions(true);
                    fieldtype.setStoreTermVectors(true);
                    document.add(new Field("title",name,fieldtype));
                    document.add(new Field("content",description,fieldtype));
                    document.add(new Field("contenttype", "product",TextField.TYPE_STORED));
                    document.add(new Field("doctype","product",TextField.TYPE_STORED));

        This is my index files:
        2013/01/03  10:49    <DIR>          .
        2013/01/03  10:49    <DIR>          ..
        2013/01/03  10:49                20 segments.gen
        2013/01/03  10:49                69 segments_1
        2013/01/03  10:49        16,566,094 _0.fdt
        2013/01/03  10:49           526,786 _0.fdx
        2013/01/03  10:49               459 _0.fnm
        2013/01/03  10:49               357 _0.si
        2013/01/03  10:49           307,358 _0.tvd
        2013/01/03  10:49        17,926,810 _0.tvf
        2013/01/03  10:49         1,053,537 _0.tvx
        2013/01/03  10:49         2,946,878 _0_Lucene40_0.frq
        2013/01/03  10:49         2,548,982 _0_Lucene40_0.prx
        2013/01/03  10:49            18,903 _0_Lucene40_0.tim
        2013/01/03  10:49               332 _0_Lucene40_0.tip
        2013/01/03  10:49               165 _0_nrm.cfe
        2013/01/03  10:49           329,336 _0_nrm.cfs

但是lukeall-4.0.0-ALPHA.jar (http://code.google.com/p/luke/downloads/list)无法打开这些索引文件并显示错误: 不支持格式化版本(资源:SimpleFSIndexInput(path =“D:\ myProjectPro \ Java \ createIndex \ product_0.tvx”)):1(需要介于0和0之间)。

有什么想法吗? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

我猜这个问题是版本不匹配。看起来最新的Luke - lukeall-4.0.0-ALPHA仅使用Lucene 4.0 ALPHA位(2012年7月)构建,我假设您正在使用官方Lucene 4.0版本(2012年10月)来创建索引。我想在这一点上你有两种可能的选择:

  1. 使用Lucene 4.0 ALPHA创建索引 - 从Lucene Archives获取jar。
  2. 似乎是将Luke的BETA版本签入源代码 - change r86。拉latest source code,在本地构建Luke并试用BETA版本。

答案 1 :(得分:0)

我对Luke不是很熟悉,但看起来这个版本的Luke是在术语向量支持有效载荷之前构建的(当tvx版本号从0变为1时),见https://issues.apache.org/jira/browse/LUCENE-1888