Hello,

We are using solr with a home made jar with a custom function.

function(0.1,1.0,43.8341851366,5.78183499999,43.8342868634,5.78210599999,latlng_pi)

where latlng_pi is a document field of type location



In solr 5.5.2, location was defined like this

<fieldType name="location" class="solr.LatLonType"
subFieldSuffix="_coordinate"/>

and parsed in the jar like this (with fq being an instance of
org.apache.solr.search.FunctionQParser)

value = fp.parseValueSource()



In solr 7.3.1, we changed the definition to

<fieldType name="location" class="solr.LatLonPointSpatialField"
docValues="true"/>


because solr.LatLonType is now deprecated.


we now have an error

"A ValueSource isn't directly available from this field. Instead try a
query using the distance as the score."

from org.apache.solr.schema.AbstractSpatialFieldType

@Override
public ValueSource getValueSource(SchemaField field, QParser parser) {
//This is different from Solr 3 LatLonType's approach which uses the
MultiValueSource concept to directly expose
// the x & y pair of FieldCache value sources.
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
"A ValueSource isn't directly available from this field. Instead try a
query using the distance as the score.");
}

To correct this error, we tried to see how the value was parsed in
*GeoDistValueSourceParser,
but it seems to us (we are not java programmers) very hacky and complicated
and we would like to know if there is a simple solution to parse a
*LatLonPointSpatialField
in our jar.


Thanks,
Elisabeth

Reply via email to