Lucene, the search API that provides most of Solr's functionality, will be able to use and/or upgrade an index built by previous versions, as long as that version is no more than one major version behind the current version.

Starting in version 8.0, this is strictly enforced, such that if an index was built by any 6.x or earlier version, Solr/Lucene will refuse to use it, even if the index is upgraded to version 7.x first.

One of the 6.x versions was updated such that the version of Solr which created the segment is written into the segment.  When segments are merged, that information is preserved in the new larger segment.

Full detection of this situation was not possible in 7.x, because the first 6.x indexes did not write this information, so the fact that it missing is not enough for 7.x to declare an index segment as unusable.

With 8.0, all supported prior releases ARE written into the index segments, so if that information is missing, then 8.x knows that it was originally written by a release that is not guaranteed to be supportable in an upgrade, so Solr 8.x will refuse to use it.

Some users have noted that they upgraded an index from 5.x, used it in 6.x, and then they were able to upgrade it again to use it in 7.x.  The Lucene developers have stated that those people got lucky, as upgrading two or more major releases has never been guaranteed to work.  This is why starting with 8.0, this upgrade restriction is now enforced.

  • No labels