几天来,我一直在尝试将地理空间搜索集成到我的 rails 应用程序中,但是当我运行 rake sunspot:solr:reindex 时不断收到此错误
RSolr::Error::Http - 400 Bad Request
Error: ERROR:unknown field 'location_ll'
Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">Place 1</field><field name=\"type\">Place</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">Place</field><field name=\"location_ll\">42.348065,-71.083623</field></doc> #etc... keeps going on for all the objects/fields being indexed in the table
据我所知,当我注释掉模型中的 latlon(:location) 行时,搜索和索引工作正常,但不知道它是错误还是我遗漏了什么。以下是我目前使用的设置:
导轨 3.2.1 红宝石 1.9.2p318
宝石 sunspot (2.0.0.pre.120417) sunspot_rails (2.0.0.pre.120417) sunspot_solr (2.0.0.pre.120417)
:latitude 和 :longitude 都是浮点格式
放置模型
searchable do
text :name
latlon(:location) { Sunspot::Util::Coordinates.new(self.latitude, self.longitude) }
end
我在 Sunspot::Util::Coordinates.new 中尝试过变体,包括 (lat, lon) 和 (latitude, longitude)
我查看了https://github.com/sunspot/sunspot/issues/203并根据建议,停止了我的 sunspot 服务器,删除了 solr 文件夹,删除了 sunspot.yml,重新安装并重新启动,但我仍然得到错误。有任何想法吗?非常感谢!