首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >searchkick在半径位置查找

searchkick在半径位置查找
EN

Stack Overflow用户
提问于 2017-04-06 16:13:31
回答 1查看 146关注 0票数 0

我想知道解决这个问题的最好方法是什么。我有一个搜索函数,如下所示:

代码语言:javascript
复制
  def search
    search_options = {
      misspellings: { edit_distance: 2 },
      fields: [:eventname, :date],
      order: { date: :asc, eventname: :asc },
      match: :word_start,
      suggest: true,
      page: params[:page],
      per_page: 20
    }
    if params[:date_from].present?
      datefrom = params[:date_from].to_datetime.strftime('%Y-%m-%d')
      dateto = params[:date_to].to_datetime.strftime('%Y-%m-%d')
      search_options[:where] =  { date: {gte: datefrom, lte: dateto} }
    end

    @events = Event.search params[:search], search_options
    if @events.results.any?
      render 'events/results'
    else
      @popevents = Event.limit(3).order('RANDOM()')
      render 'events/noresults'
    end
  end

现在我想要做的是添加一个搜索功能,允许人们搜索他们输入的邮政编码50英里内的事件。

我的events表中有一个邮政编码字段,其中包含所有事件位置的邮政编码。

做这件事最好的方法是什么?(简单的,如果可能的话,有点像握住你的手的指南,那就太棒了!)

相同的

EN

回答 1

Stack Overflow用户

发布于 2017-04-06 16:44:13

看一看geocoder gem。数据库或Rails不支持本地邮政编码搜索,但您可以使用地理编码服务来获取存储的每个地址的纬度和经度。这涉及到将这些列添加到数据库中。

geocode有很好的文档,它将帮助您进行地理编码(获取经纬度/lng)和按距离进行搜索(尽管您也可以使用searchkick进行后者)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43249461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档