Thanks, Toke. 

I’m still surveying the code; do you know of a place in the code that might be 
more problematic?

We’d be mainly concerned about searching, sorting and (simple, low-cardinality) 
faceting working for us.

Some features like grouping are not currently used by us, so in a pinch a 
custom build might be a partial patch. We’ll just have to see.

- Ronald S. Wood


On 8/25/16, 06:50, "Toke Eskildsen" <t...@statsbiblioteket.dk> wrote:

    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
    


Reply via email to