ruby-on-rails - 如何按距离排序 searchkick 搜索?

标签 ruby-on-rails elasticsearch searchkick

@professional_services = 
  Professional::Service.search @keywords, where: {
    location: { 
      near: { lat: @cordinate[0], lon: @cordinate[1] }, 
      within: "100km"
    }
  }  

如何按距离排序此搜索?

最佳答案

我使用查询按距离对结果进行排序:

@professional_services =  
Professional::Service.search "*", where: {
  location: {
    near: {lat: @cordinate[0], lon: @cordinate[1]}, within: "10000km"
  }
}, 
order: [{
  _score: :desc}, {_geo_distance: {location: "#{@cordinate[0]},  
  #{@cordinate[1]}", order: "asc",unit: "km"}
}]

关于ruby-on-rails - 如何按距离排序 searchkick 搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47637097/

相关文章:

ruby-on-rails - 使用accepts_nested_attributes_for 和denefit_exposure 未设置关联ID

elasticsearch - 根据映射的时间戳进行过滤

ruby-on-rails - URI::InvalidURIError: 方案 http 不接受注册表部分: :9200 (或错误的主机名?)

javascript - 我怎样才能让 Rails 不将转义引号呈现为\"

ruby-on-rails - 为什么花括号 on Rails 回调?

elasticsearch - 如何在不同的计算机上运行elasticsearch服务器?

linux - 运行 ElasticSearch。 Bash : ./bin/elasticsearch:权限被拒绝

ruby-on-rails - 如何使用 searchkick 进行逻辑运算的复杂查询

ruby-on-rails - 随机搜索结果

ruby-on-rails - 如何使用 rspec 和 rails 5.1 在终端中查看屏幕截图