Hello,

I am having difficulties with sorting by distance resources indexed with WKT 
geolocation data. I have tried different field configurations and query 
parameters and I did not get working results.

I am using SOLR 6.6 and JTS-core 1.14. My test sample includes resources with 
point coordinates plus one associated with a polygon. I tried using both 
fieldtypes "solr.SpatialRecursivePrefixTreeFieldType" and 
"solr.RptWithGeometrySpatialField". In both cases, I get good results if I do 
not care about sorting. The problem arises when I include sorting.

With SpatialRecursivePrefixTreeFieldType:

The best request I used, based on the documentation I could find, was:
select?fl=*,score&q={!geofilt%20sfield=PositionGeo%20pt=45.52,-73.53%20d=10%20score=distance}&sort=score%20asc

The distance appears to be correctly evaluated for resources indexed with point 
coordinates. However, it is wrong for the resource with a polygon

<result name="response" numFound="5" start="0" maxScore="20015.115">
  <doc><float name="score">2.3913236</float></doc>
  <doc><float name="score">4.3242383</float></doc>
  <doc><float name="score">4.671504</float></doc>
  <doc><float name="score">4.806902</float></doc>
  <doc><float name="score">20015.115</float></doc>
</result>

(Please note that I have verified the polygon externally and it is correct)

With solr.RptWithGeometrySpatialField:

I get an exception triggered by the presence of « score=distance » in the 
request « 
q={!geofilt%20sfield=PositionGeo%20pt=45.52,-73.53%20d=10%20score=distance} »

java.lang.UnsupportedOperationException
                at 
org.apache.lucene.spatial.composite.CompositeSpatialStrategy.makeDistanceValueSource(CompositeSpatialStrategy.java:92)
                at 
org.apache.solr.schema.AbstractSpatialFieldType.getValueSourceFromSpatialArgs(AbstractSpatialFieldType.java:412)
                at 
org.apache.solr.schema.AbstractSpatialFieldType.getQueryFromSpatialArgs(AbstractSpatialFieldType.java:359)
                at 
org.apache.solr.schema.AbstractSpatialFieldType.createSpatialQuery(AbstractSpatialFieldType.java:308)
                at 
org.apache.solr.search.SpatialFilterQParser.parse(SpatialFilterQParser.java:80)

>From there, I am rather stuck with no ideas on how to resolve these problems. 
>So advises in that regards would be much appreciated. I can provide more 
>details if necessary.

Thank you in advance,


 ---
  Luc Grondin
  Analyste en gestion de l'information numérique
  Centre d'expertise numérique pour la recherche - Université de Montréal
  téléphone: 514-343-6111 p. 3988  --  
luc.gron...@umontreal.ca<mailto:luc.gron...@umontreal.ca>

Reply via email to