Hi Chris,

Thanks for your detailed explanations. The default value is a difficult
limitation. Especially for financial figures. I may try with some
workaround like the lowest possible number for TrieLongField, but would be
better to avoid such :)

Regards.

On 22 March 2013 20:39, Chris Hostetter <hossman_luc...@fucit.org> wrote:

>
> : Thank you for your response. Yes, that's strange. By enabling DocValues
> the
> : information about missing fields is lost, which changes the way of
> sorting
> : as well. Adding default value to the fields can change a logic of
> : application dramatically (I can't set default value to 0 for all
> : Trie*Fields fields, because it could impact the results displayed to the
> : end user, which is not good). It's a pity that using DocValues is so
> : limited.
>
> I'm not really up on docvalues, but i asked rmuir about this a bit on IRC>
>
> the crux of the issue is that there are two differnet docvalue impls, one
> that uses a fixed amount of space per doc (ie: exactly one value per doc)
> and one that alloaws an ordered set of values per doc (ie: multivalued).
>
> the multivalued docvals impl was wired into solr for multivalued fields,
> and the single valued docvals impl was wired in for hte single valued case
> -- but since since the single valued docvals impl *has* to have a value
> for every doc, the schema error you encountered was added if you try to
> use it on a field that isn't required or doesn't have a default value --
> to force you to be explicit about which "default" you want, instead of hte
> low level lucene "0" default coming into play w/o you knowing about it.
> (as Shawn mentioned)
>
> the multivalued docvals impl could concivably be used instead for these
> types of single valued fields (ie: to support 0 or 1 values) but there is
> no sorting support for multivalued docvals, so it would cause other
> problems.
>
> One possible workarround for people who want to take advantage of "sort
> missing first/last" type sorting on a docvals type field would be to mange
> the "missing" information yourself in a distinct field which you also
> leveraged in any filtering or sorting on the docvals field.
>
> ie, have a docvalues field "myfield" which is single valued, with some
> configured default value, and then have a "myfield_exists" boolean field
> which is single valued and required.  when indexing docs, if "myfield"
> does/doesn't have a value set "myfield_exists" to accordingly (this would
> be fairly trivial in an updated processor) and then instead of sorting
> just on "myfield desc" you would sort on "myfield_exists (asc|desc),
> myfield desc" (where you pick hte asc or desc depending on wether you want
> docs w/o values first or last).  you would likewise need to filter on
> myfield_exists:true anytime you did queries against the myfield field.
>
>
> (perhaps someoen could work on patch to inject a synthetic field like this
> automatically for fields that are docValues="true" multiValued="false"
> required="false" w/o a defualtValue?)
>
>
> -Hoss
>

Reply via email to