Hoss Man created SOLR-10832:
-------------------------------

             Summary: Using "indexed" PointField for _version_ breaks 
VersionInfo.getMaxVersionFromIndex
                 Key: SOLR-10832
                 URL: https://issues.apache.org/jira/browse/SOLR-10832
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
            Reporter: Hoss Man


If someone configures {{\_version_}} using a {{LongPointField}} which is 
{{indexed="true"}} then {{VersionInfo.getMaxVersionFromIndex()}} will 
incorrectly assume...

{code}
    // if indexed, then we have terms to get the max from
    if (versionField.indexed()) {
      LeafReader leafReader = 
SlowCompositeReaderWrapper.wrap(searcher.getIndexReader());
      Terms versionTerms = leafReader.terms(versionFieldName);
      Long max = (versionTerms != null) ? 
LegacyNumericUtils.getMaxLong(versionTerms) : null;
{code}

...which will not work because Point based fields have no Terms.

potential work around: configuring {{\_version_}} to use {{indexed="false" 
docValues="true"}} should cause this branch to be skipped and the existing 
ValueSource/DocValues based fallback to be used.

We should either:
* figure out if an alternative option exists for determining the "max" value of 
a LongPointField, and if so use that if {{versionField.indexed() && 
versionField.getType().isPointField()}}
* change {{VersionInfo.getAndCheckVersionField()}} to check if the version 
field {{IsPointField()}} and if so error unless {{indexed="false" && 
docValues="true"}}




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to