ターゲットは、スコア、次に距離でマルチソートを実行し、半径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"