0
私はElasticsearchを自分のRails APP trhough gem 'chewy'
に使っています。Rails - Elasticsearch - Chewyとの座標で検索
私は2つのモデルを持っています:製品とタグ[多対多の関係、ProductTagモデルで管理]。私は成功したと私のコントローラでProductsIndexを照会することができ
:私は指定されたタグを持つすべての製品のオブジェクトを返します
q = params[:q]
@products = ProductsIndex.filter { tags(:and) == [q] }.load
は、私は次のようにProductsIndexを定義しました。
質問:ProductIndexを照会して、与えられた座標のペア(lat/lon)から半径100Km以内のすべてのProductオブジェクトを返すにはどうすればよいですか?
私は厳密距離によってソートする必要はありませんが、あなたはあなたの答えに含める場合、それは非常に高く評価されます:)
編集私はこのような何かをしようとしているが、それは動作しません
:
ProductsIndex.filter {
geo_distance: {
distance: '100km',
location: {
lat: 60.0951482712848,
lon: -86.4810766234584
}
}
}
私は、次の構文エラーを得た
SyntaxError: (irb):10: syntax error, unexpected ':', expecting '}'
...uctsIndex.filter {geo_distance: { distance: '100km', l...
... ^