0

我是使用太阳黑子宝石的新手。我已经安装并正确索引和查询。但是,我现在尝试通过包含地理搜索来绑定搜索参数。我的由 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: sunspot (2.0.0, 1.3.3, 1.2.1) sunspot_rails (1.3.3, 1.2.1) sunspot_solr (2.0.0)

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

4

1 回答 1

0

我想到了。这是正确的方法:

searchable do
.
.
.
double :latitude
double :longitude
location (:location) { Sunspot::Util::Coordinates.new(latitude, longitude) }
end
于 2013-05-10T15:49:29.090 回答