С помощью солнечных пятен, как я могу индексировать определенные поля?
Я хотел бы добавить условно индексировать некоторые данные в методе "пятно поиска" солнечного пятна в моей модели. В идеале это будет выглядеть примерно так:
searchable do
string :important_text
if address_visible?
string :address
end
end
В приведенном выше примере, я хотел бы индексировать поле адреса, только если address_visible? Метод (в модели) возвращает true. К сожалению, адрес_видимый? Метод выдает "NoMethodError", потому что контекст теперь является Sunspot::DSL::Fields, а не моделью.
1 ответ
Решение
Я не думаю, что вы действительно можете делать именно то, что вы хотите. Тем не менее, вы можете индексировать другое значение для адреса, когда адрес не виден. Например:
searchable do
string :important_text
string :address { |model| model.address_visible? ? model.address : '' }
end