2012-09-29 61 views
2

我想在邊界框內搜索地圖框,該地圖框的北緯和西南點的lat/lng可用。我有latlng索引爲TrieDoubleField類型和latlng索引爲solr.LatLonType類型。在一個方框內搜索(而不是像geofilt那樣的半徑)的原因是因爲搜索是在矩形地圖上可見的所有區域上完成的,我給出了地圖4個角的座標。使用Solr在邊界框內進行地理空間搜索

問題:做2個範圍查詢效率低下,latlng一個效率低嗎?如下圖所示,必須搜索大量不必要的範圍。

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=5將無法​​正常工作,我無法計算值d符合我的地圖的邊界。

enter image description here

回答

4

Solr的4擁有一套新的空間字段類型中,你可以指定LAT-LON邊框。我打算在本週末推出is information here

如果你使用的是Solr 3,那麼是的,你可以像你一樣進行數字範圍查詢。如果你想處理一個日期線交叉,那麼它有點棘手,因爲經度需要兩對範圍查詢。正如你問的那樣,「不」,這種方法並不低效。順便說一句,你不需要分別爲緯度&指定經度,因爲LatLonType已經這樣做了,你可以使用它的字段。在模式瀏覽器中查看,你應該看到以__x和__y結尾的字段(如果我記得)。

相關問題