In this situation you need to first, using 4.5.1, "upgrade" your
entire index to the supported postings format ... then 4.8 can read
the index.

Mike McCandless

http://blog.mikemccandless.com


On Thu, Sep 25, 2014 at 4:00 PM, Michael Poindexter
<statics...@gmail.com> wrote:
> I have an index that was created in 4.5.1 using a custom Codec (actually
> just the Lucene45Codec codec with the getPostingsFormatForField method
> overridden to return a MemoryPostingsFormat for a particular field).  I
> attempted to upgrade using IndexUpgrader to a 4.8.1 index, and it failed
> with a CorruptIndexException.  Digging a little deeper, it seems
> like MemoryPostingsFormat did not use a header (as supplied
> by org.apache.lucene.codecs.CodecUtil) in 4.5, but now does in 4.8, so the
> on-disk formats are incompatible.
>
> I know MemoryPostingsFormat is experimental, subject to change, etc, but
> has anyone given any thought to allowing an upgrade in scenarios like
> this?  I think for my existing index it's too late, since the name "Memory"
> is already written into the segment, and the PostingsFormat returned by
> NamedSPILoader for "Memory" will be one that only allows reading 4.8
> "Memory" postings.  Maybe in the future it would be nice to do something as
> simple as having the PostingsFormats in the lucene-codecs package have a
> version in the name (i.e. Memory45, Memory48) so that at least I could do
> the work of porting the 4.5 code to 4.8 enough to allow an upgrade if
> needed?  Or maybe there's some API that I'm unaware of that I can hook into
> the loading of old format segments and return an alternate postings format?
> (looking at the code nothing like this seems to exist, but wanted to double
> check)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to