Ronald Wood <rw...@smarsh.com> wrote: > Did you find you had to do a full conversion all at once because simply > turning on > docvalues in the schema caused issues?
Yes. > I ask because my presupposition has been that we could turn it on without any > harm as we incrementally converted our indexes. If you don't use the field for any queries until all the values has been re-build, I guess that would work. The I-am-not-so-sure-part is how the merger handles the case of a field having DocValues in one segment and not in another. But mixing docValued & non-docValued segments with a schema that says DocValues will make DocValue-using queries fail, as you seem to have encountered: > But this won’t work if enabling docvalues in the schema will lead to errors > when > fields don’t have docvalues actually populated. I.e.. the > “IllegalStateException: > unexpected docvalues type NONE for field 'id' (expected=SORTED)” error I see. > I’m still trying to get to the bottom of whether that error means I cannot > safely do > an incremental conversion in-place. When you enable docValues in the Solr schema, Solr also uses that information when reading the data from the segments, so when the code detects the missing docValues in the segments themselves, it is already too far down the execution path to change strategy. Basically the contract (schema) is broken, so all bets are off. Your gradual enabling would work, at least for faceting, if it was possible to force the selection code to only use the indexed values, but the current code does not have an option for forcing the use of the indexed value. You could add it as a (small) hack, if you are comfortable with that. I don't know how easy or hard it would to hack grouping. - Toke Eskildsen