Hi Mike,
It doesn’t work either, it throws “Cannot merge a segment that has been created
with major version 6 into this index which has been created by major version 7"
message. Let me try it after an upgrade as well. Same code below,
@Test
public void mergeUsingCodecReader() throws IOException {
DirectoryReader ir = DirectoryReader.open(lucene610Dir);
SegmentReader air =
(SegmentReader)ir.leaves().get(0).reader();
IndexWriterConfig config = newIndexWriterConfig();
IndexWriter w = new IndexWriter(newEmptyDirectory("target"),
config);
exception.expect(IllegalArgumentException.class);
exception.expectMessage("Cannot merge a segment that has been
created with major version 6 into this index which has been created by major
version 7");
w.addIndexes(air);
w.forceMerge(1);
w.close();
}
Thanks,
Kannan
On 11/9/17, 5:07 PM, "Michael McCandless" <[email protected]> wrote:
Maybe try the addIndexes method that takes CodecReader[] instead? It will
be somewhat slower, since it fully reads and writes the index, but it
should work across major versions?
Mike McCandless
http://blog.mikemccandless.com
On Thu, Nov 9, 2017 at 3:59 PM, Krishnamurthy, Kannan <
[email protected]> wrote:
> Greetings.
>
>
> We are currently using Lucene 6.1.0, our typical index size is ~ 200GB and
> we are planning to move to Lucene 7.0.0.
>
>
> Our daily indexing workflow currently uses IndexWriter.addIndexes() to add
> an index(this will be on Lucene 7.0.0) to a copy of the of the 200GB
index.
> Further it calls IndexWriter.forceMerge(1) to create a single segment. The
> addIndexes() now doesn't support different versions of index.
>
> We are facing an issue in upgrading to Lucene 7.0.0 due to this
> limitation. We couldn't afford to do full reindex as there about 50
> different indexes ~ 200GB each.
>
>
> We tried using the LuceneUpgrade tool to upgrade our index to latest
> version, however the IndexCreatedVersionMajor is still LUCENE_6_1_0.major,
> This is preventing us calling IndexWriter.addIndexes() post upgrade.
>
>
> I am wondering what are our options to upgrade without doing a full
> reindex and to continue to use IndexWriter.addIndexes() post upgrade.
>
> The code snippet below shows the different api calls we make.
>
>
>
> @Test
> public void addIndexWith7SegmentToDirectoryOnUpgradedSegment() throws
> IOException {
> IndexUpgrader upgrader = new IndexUpgrader(lucene610Dir); // lucene 6.1.0
> directory 200 GB
> upgrader.upgrade();
>
> IndexWriter w = new IndexWriter(lucene610Dir, newIndexWriterConfig());
> exception.expect(IllegalArgumentException.class);
> exception.expectMessage(
> CoreMatchers.containsString("Cannot use addIndexes(Directory) with
> indexes that have been created by a different Lucene version"));
> w.addIndexes(lucene700Dir); // lucene 7.0.0 daily index
> w.forceMerge(1);
> w.close();
> }
>
> Let me know if you need more details.
>
>
> Many thanks
>
> Kannan.
>
>