Цель состоит в том, чтобы выполнить мультисортировку по счету, а затем по расстоянию, а для ограничения радиуса 0,14 градуса я выполняю следующий запрос:
localhost:8983/solr/coll1/select?sortsq={! score=distance}locations:"Intersects(Circle(34.0031792,-118.3082034 d=0.14))"&fl=score,distdeg:query($sortsq),*&facet=true&sort=score desc,query($sortsq) asc&indent=on&wt=xml&version=2.2&rows=10&start=0&q=text:*&facet.field=xxxxx&fq=fieldname:"filterValue"
Возвращаются все документы, соответствующие запросу, независимо от того, находятся ли они в пределах круга или нет, но те, которые находятся в пределах 0,14 градуса, возвращают расстояние (distdeg), а другие не возвращают это поле.
Как я могу опустить непересекающиеся документы?
объявление поля местоположения:
<fieldType name="geo_field" class="solr.SpatialRecursivePrefixTreeFieldType"
spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
distErrPct="0.025"
maxDistErr="0.000009"
units="degrees"
/>
Обновление: рабочая версия запроса
http://localhost:8983/solr/coll1/select?getDist={! score=distance}locations:"Intersects(Circle(34.0031792,-118.3082034 d=0.14))"&fl=score,distdeg:query($getDist),*&facet=true&sort=score desc&indent=on&wt=xml&version=2.2&rows=10&start=0&q=*:*&boost=query({! score=distdeg filter=false v=$getDist)&fq=locations:"Intersects(Circle(34.0031792,-118.3082034 d=0.14))",states:"CA"