Ankit,
"I guess the SegmentInfo "minVersion" is the min across all segments during
the merge process?"
> That is correct

I am wondering if there is any way to end up in the 2nd scenario, without
having deleted all the documents first?
> Consider the following sequence of events...
an index with 2 segments (seg1 and seg2) originally created in Lucene 8.x.
==> Upgrade to 9.x ==> index few documents and commit ==> seg3 gets created
with version 9.x, but merge doesn't kick in ==> documents in seg1 and seg2
get deleted followed by commit.==> You are left with seg3 in 9.x but
indexCreatedVersionMajor as 8.x ==> Upgrade to Lucene 10.x fails.

-Rahul

On Sat, Apr 19, 2025 at 1:01 PM Ankit Jain <jain.ank...@gmail.com> wrote:

> Hi Rahul,
>
> Thanks for starting this interesting discussion. I was initially thinking
> that this API potentially allows upgrading "indexCreatedVersionMajor" via
> the merge process after rewriting all the segments, but I guess the
> SegmentInfo "minVersion" is the min across all segments during the merge
> process?
>
> So, I am wondering if there is any way to end up in the 2nd scenario,
> without having deleted all the documents first?
>
>
> Thanks
> Ankit
>
> On Sat, Apr 19, 2025 at 9:17 AM Rahul Goswami <rahul196...@gmail.com>
> wrote:
>
>> Hello,
>> Today even after all documents in an index are deleted via an API call,
>> reindexing still doesn't change the "indexCreatedVersionMajor" property
>> value in SegmentInfos. Hence even after complete reindexing, an upgrade
>> path X--> X+1 --> X+2 is still not possible as we end up with an
>> IndexFormatTooOldException.
>>
>> Requesting an API (on IndexWriter?) which can reset this property (upon a
>> new commit) to the current Lucene version if:
>> 1) No more live docs present
>> OR
>> 2) If all SegmentInfo in the index have a "minVersion" AND "version"
>> stamp of the latest version , but SegmentInfos has an older
>> "indexCreatedVersionMajor".
>>
>> This will help users a LOT since they can now interact with the index
>> purely via API without needing manual deletion and also help open up a
>> legitimate path to upgrade when an index doesn't HAVE to be repopulated
>> from the source.
>>
>> If there is agreement, I am happy to pick this up and submit a PR.
>>
>> Thanks,
>> Rahul Goswami
>>
>>
>>

Reply via email to