我刚开始在我的Rails网络服务中使用Searchkick,目前我正在测试。我希望使用that在某个位置的某个周边检索用户。
对于我的测试,我有一个User对象(带有电子邮件,名称......)和一个Position对象(具有经度,纬度和对一个用户的引用)。用户与位置有很多关系。
目前我的立场看起来像
class Position < ActiveRecord::Base
belongs_to :User
searchkick locations: ["location"]
def search_data
attributes.merge location: [latitude, longitude]
end
end
我尝试做像
这样的研究Position.search *, where: {location: {near: [50.632049, 3.068322], within: "100mi"}}
但是我收到以下错误
nested: QueryParsingException[[positions_development_20140310223244065] failed to find geo_point field [location]]; }]","status":400}
我不知道到底要做什么。 (我刚开始使用rails和弹性搜索) 所以,如果有人能给我一个更好的解释,我就接受了!感谢的
答案 0 :(得分:3)
确保在更改searchkick
或search_data
方法后重新编制索引。
Position.reindex