On Tue, May 28, 2013, at 10:21 AM, Dotan Cohen wrote: > When adding or removing a text field to/from the schema and then > restarting Solr, what exactly happens to extant documents? Is the > schema only consulted when Solr writes a document, therefore extant > documents are unaffected? > > Considering that Solr supports dynamic fields, my experimentation with > removing and adding fields to the schema has shown almost no change in > the extant index results returned.
The schema provides Solr with a description of what it will find in the Lucene indexes. If you, for example, changed a string field to an integer in your schema, that'd mess things up bigtime. I recently had to upgrade a date field from the 1.4.1 date field format to the newer TrieDateField. Given I had to do it on a live index, I had to add a new field (just using copyfield) and re-index over the top, as the old field was still in use. I guess, given my app now uses the new date field only, I could presumably reindex the old date field with the new TrieDateField format, but I'd want to try that before I do it for real. However, if you changed a single valued field to a multi-valued one, that's not an issue, as a field with a single value is still valid for a multi-valued field. Also, if you add a new field, existing documents will be considered to have no value in that field. If that is acceptable, then you're fine. I guess if you remove a field, then those fields will be ignored by Solr, and thus not impact anything. But I have to say, I've never tried that. Thus - changing the schema will only impact on future indexing. Whether your existing index will still be valid depends upon the changes you are making. Upayavira