1

Solr SpatialSearchのドキュメントは、通常のクエリなどと空間関数を組み合わせることができることを示唆していますが、geodist()そのための正しい構文を決定できませんでした。

具体的には、この行(ジオディストセクション)が私の注意を引きました:

または、距離関数をメインクエリ(またはその一部)として使用して、ドキュメントのスコアとして距離を取得することもできます。

...&q = {!func} geodist()&sfield = store&pt = 45.15、-93.85&sort = score asc

そのページの店舗在庫の例に従って、「特定の都市内、または都市から特定の距離内にあるすべての店舗を検索する」ことを実行します。私は両方を別々に簡単に達成することができますが、それらを組み合わせるのに苦労しています。

これが、私がやろうとしていることを明確にする疑似クエリです。

...&q=storecity:Buffalo OR {!func}geodist(store,45.15,-93.8)&d=5

期待される結果は、バッファローのすべての店舗、またはバッファローから5km以内になります。ユースケースは、ロサンゼルスなどの非常に大規模な都市向けです。ロサンゼルスから5km以内のすべての店舗を言うと、座標から5 km以内の店舗しか見つからないため、のある店舗を探すとstorecity:"Los Angeles"、失われた結果が含まれます。

ボーナスポイントについては、市内の店舗が外部の店舗よりも上位にランク付けされるようにするためにどのようにスコアを付けるかについても興味がありますが、それは二次的なものであり、おそらく私が理解できるものです:)

4

1 に答える 1

1

次のクエリを使用して、期待される結果を得ることができます。

..&q = storecity:Buffalo OR _query_: "{!geofilt sfield = location pt = 45.15、-93.8 d = 5}"

于 2012-12-07T09:15:35.757 に答える