On 8/24/23 14:02, Christopher Schultz wrote:
I'm preparing to upgrade a standalone Solr server from 7.7.3 -> 8.11.2
and I wanted to confirm a few things.
First, I'm assuming that the new server will be willing to open and
modify the existing index after the upgrade, because I haven't seen
anything to suggest that wouldn't be the case, but please let me know if
I'm wrong about that.
If the index was EVER touched by a version before 7.0, then 8.x will not
read it. If the index was built from scratch by 7.7.3, then it will work.
Second, I understand that a complete re-index is appropriate, and that
if I were to eventually upgrade to Solr 9 (which is also in the plan), I
would have to ensure that the index has been "properly" upgraded to an
8.x-style index in order for Solr 9 to open it and re-index, etc.
Version 9 behaves the same as 8. If the index was ever touched by a
version before 8.0, version 9 will not read the index.
I would strongly recommend that even if your existing index will work,
that you perform a complete re-index from scratch as soon as possible.
I'm using a Java-based process via SolrJ to perform the re-index. My
re-index process looks something like this:
1. (Optional) solr.deleteByQuery("*:*")
2. for each document :
2a. SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", primary-identifier);
...
2b. solr.add(doc)
Is the above enough to generate a "new" 8.x-style index that will be
acceptable in the future? Is it necessary to perform step (1) and delete
all documents first, or if I freshen ALL documents will I end up with a
completely new index?
Before running that, you will want to either build a brand new core or
completely delete all index* directories in the core then reload that
core. If you do that, then there will be no possibility of
"contamination" from an earlier version.
Is there a way I can inspect the index afterward to ensure I've been
successful? Some kind of magic-number in file headers or an API call I
can make to ask about the version-ness of the index?
The Lucene tool called "Luke" can probably give you that information for
each segment. I do not know enough about low-level Lucene file formats
to give you a definitive answer.
Thanks,
Shawn