Status

Current state: Under discussion

Discussion thread: https://mail-archives.apache.org/mod_mbox/lucene-dev/201912.mbox/%3cC75FB0F5-3397-4175-B4D6-8E31120C795A@gmail.com%3e

JIRAs: Before carrying this forward, please look at the discussions at these JIRAs.

Released: None

Motivation

There are certain situations in which modifying an existing index is necessary and re-indexing from the system-of-record is either undesirable or impossible. This is a proposal to allow certain "safe" operations to be added to Solr, possibly as a package or contrib out of the box.

Public Interfaces

TBD.

Proposed Changes

The process can be summarized as follows:

Compatibility, Deprecation, and Migration Plan

Test Plan

Test plans should be built from existing test plans for functionality. For instance:

Design Goals

In order to work well with large collections, the following criteria must be met:

Supported (safe) operations

Some operations are safe as well as frequently requested. Here are few ideas.

Unsupported functionality

This process allows the index to be transformed in any way whatsoever. Any OOB functionality must be safe enough to be confident the index will be functional and correct. Therefore, the project will not support any functionality that is a-priori unsafe. Some examples:

Prior art

Andrzej Bialecki and Erick Erickson implemented a version of this for an older Solr instance. We’ve gotten permission to open-source that work so there are a number of lessons learned:

Rejected Alternatives

Not sure these qualify as "rejected", more discussion of whether this is a good idea at all.