【问题标题】:Sunspot Solr Rails geosearch is failing with undefined method errorSunspot Solr Rails 地理搜索因未定义的方法错误而失败
【发布时间】:2013-05-02 22:06:08
【问题描述】:

我刚开始使用 Sunspot gem。我已经安装并正确索引和查询。但是,我现在尝试通过包含地理搜索来绑定搜索参数。我的由 SOLR 索引的数据库表具有纬度和经度字段,但我无法进行地理搜索。

这是我的模型中的内容:

  searchable do
    .
    .
    .
    double :latitude, :as => "lat"
    double :longitude, :as => "lon"
    location (:location) { Sunspot::Util::Coordinates.new(lat, lon) }
  end

但是,当我运行 rake 任务重新索引时,它会失败并显示以下内容:

undefined method `lat' for #<Product:0x1076e6650>

我也试过了:

latlon(:location){ Sunspot::Util::Coordinates.new(lat, lon) }

location(:location){ Sunspot::Util::Coordinates.new(:latitude, :longitude) }

我尝试了各种不同的选项,例如传入 :latitude 和 :longitude 而不是 lat, lon 但我似乎每次都遇到不同的错误。

我安装了以下 gem: 太阳黑子(2.0.0、1.3.3、1.2.1) sunspot_rails (1.3.3, 1.2.1) sunspot_solr (2.0.0)

任何建议将不胜感激!提前致谢。

【问题讨论】:

  • 我意识到我需要更新到 sunspot_rails 2.0.0 和 sunspot 2.0.0 但这也没有解决问题。

标签: ruby-on-rails solr geospatial sunspot


【解决方案1】:

我想通了。以下是正确的做法:

searchable do
.
.
.
double :latitude
double :longitude
location (:location) { Sunspot::Util::Coordinates.new(latitude, longitude) }
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    相关资源
    最近更新 更多