Я пытался интегрировать геопространственный поиск в мои рельсы приложения в течение нескольких дней в настоящее время, но постоянно получаю эту ошибку, когда я запускаю грабли SunSpot: Solr: переиндексацииВеснушка геопространственной поиска ОШИБКА: неизвестное поле «location_ll»
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
Gems солнечных пятен (2.0.0.pre.120417) sunspot_rails (2.0.0.pre.120417) sunspot_solr (2.0.0.pre.120417)
: широта и долгота находятся в формате флоат
Place модель
searchable do
text :name
latlon(:location) { Sunspot::Util::Coordinates.new(self.latitude, self.longitude) }
end
Я пробовал вариации Веснушка :: Util :: Coordinates.new, в том числе (широта, долгота) и (широта, долгота)
Я посмотрел на https://github.com/sunspot/sunspot/issues/203 и в соответствии с предложениями, остановил мой sunspot server, удалил папку solr, удалил sunspot.yml, переустановил и перезапустил, но все равно получаю ошибку. Есть идеи? Большое спасибо!
Спасибо, это помогло. Кроме того, у меня был lat> 90.0, что недопустимо, lon должно быть <= 180 в десятичных градусах. – James