2

北東ポイントと南西ポイントの緯度/経度が利用可能なバウンディング ボックス内のマップを検索したいと考えています。タイプとlatタイプとしてlngインデックスを作成しました。ボックス内 ( のような半径ではなく) で検索する理由は、検索が長方形のマップ上に表示されるすべての領域で行われ、マップの 4 つのコーナーの座標が与えられるためです。TrieDoubleFieldlatlngsolr.LatLonTypegeofilt

問題:latに対して 1 つと に対して1つの 2 つの範囲クエリを実行するのは非効率的lngですか? 下の画像に示すように、多くの不要な範囲を検索する必要があります。

http://127.0.0.1:8080/solr/select?q=*:*fl=id&fq=lat:[42.2823890429 TO 42.4224427748] AND lng:[-71.3345718384 TO -70.7612228394]

もしそうなら、より良い方法はありますか?

fq={!bbox}&sfield=latlng&pt=45.15,-93.85&d=5dマップの境界に一致する値を計算できないため、機能しません。

ここに画像の説明を入力

4

1 に答える 1

4

Solr 4 には、lat-lon バウンディング ボックスを指定できる一連の新しい空間フィールド タイプがあります。今週末に更新する予定の情報がここにあります。

Solr 3 を使用している場合は、そうです。現在行っているように数値範囲クエリを実行できます。日付変更線の交差を処理したい場合は、経度に必要な範囲クエリのペアが 2 つあるため、もう少し注意が必要です。そして「いいえ」、あなたが尋ねたように、このアプローチは非効率的ではありません。ところで、LatLonType はすでにこれを行っており、そのフィールドを使用できるため、緯度と経度を個別にインデックス化する必要はありません。スキーマ ブラウザを見ると、__x と __y で終わるフィールドが表示されます (思い出すと)。

于 2012-09-29T18:26:48.237 に答える