2013-03-04 2 views
0

В примерах для солнечного пятна sunspot.github.com, ассоциация belongs_to :blog индексируется внутри блока searchable с integer :blog_id. Позже поиск может быть ограничен определенным блоком, используя with(:blog_id, 1).Невозможно проиндексировать целое число в поле id

Если это сделано, за исключением ассоциации для retailer и индекс находится на retailer_id. Тем не менее, при поиске не возвращаются результаты, как только я использую with(:retailer_id, 4). Если это условие остановлено, все возвращенные результаты имеют значение retailer_id = 4.

Я повторно проиндексировал, много раз. Я пробовал оба sunspot_rails 1.3.3 и 2.0.0.

Все поля text, по всей видимости, индексируются в порядке.

В запросе, отображаемом в журналах Rails, идя в solr, появляется соответствующее поле.

Что еще может вызвать это?

ответ

0

После попытки Sunspot.index(Item.first) и, увидев, что xml включил retailer_id. Я проверил журналы для импорта, сделанные командой rake.

Как оказалось, проблема, с которой я столкнулась, связана с тем, что DataMapper не создает свойства ассоциации до тех пор, пока не вызывается DataMapper.finalize. Это никогда не происходит как часть включенного sunspot_rails tasks.rb для переиндексации.

Быстрое решение для меня состояло в том, чтобы просто скопировать задачу грабли и добавить вызов для завершения после того, как все модели потребуются.

Смежные вопросы