0
我在我的Rails應用程序中使用Elasticsearch應用程序gem 'chewy'
。Rails - Elasticsearch - 通過座標搜索耐克
我有兩種模式:產品和標籤[多對多關係,通過ProductTag模型管理]。
我定義ProductsIndex如下:
我能夠成功查詢ProductsIndex在我的控制器:
q = params[:q]
@products = ProductsIndex.filter { tags(:and) == [q] }.load
返回我所有指定標記的產品對象。
我的問題是:如何查詢ProductIndex以從給定的座標對(經度/緯度)返回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...
... ^