3

ElasticSearch とタイヤを使用するプロジェクトに取り組んでいます。Web ページに Google マップがあります。ユーザーがマップ上にポリゴンを描画するときに、すべてのプロパティを取得したいと考えています。私はすでにポリゴン座標を取得しています.ポリゴンエリア内のすべてのプロパティをフィルタリングするクエリを(tire.serachブロックは以下を参照)に書きたいと思います.データベースのプロパティテーブルには経度と緯度の列があります. Postgis アダプターを使用してこれを行うことができますが、タイヤ/弾性検索でこれを行うクエリの構文を知る必要があります。

def self.search(params={}) 

tire.search(load: true, page: params[:page], per_page: 50) do |search|

  syntax of the filter query that will fetch all properties within user defined polygon area..??? 

end 
end

ありがとうアテック。

4

1 に答える 1

4

何かのようなもの:

Tire.search 'venues' do
  query do
    filtered do
      query { all }
      filter :geo_polygon, location: { points: [
                                        {lat: 40, lon -70},
                                        {lat: 30, lon -80},
                                        {lat: 20, lon -90}
                                       ]
                                      }
    end
  end
end

Geo Polygon Filterに関する Elasticsearch ドキュメントからの例。

于 2012-12-12T20:49:41.677 に答える