Searchkick индекс связанных полей модели
У меня есть приложение rails, и я переключаюсь со Sphinx на ElasticSearch и использую gem searchkick.
У меня есть модель Учитель и модель Теги (через драгоценный камень), где Учитель может иметь несколько связанных тегов. В модели Учителя я определил индекс следующим образом:
def search_data
{
name: name,
intro: intro,
bio: bio,
tag_name: tags.name
}
end
Имя, вступление и биография являются атрибутами Учителя, но я хочу проиндексировать имя тегов, связанных с учителем. Как я могу это сделать?
Как это сейчас, он индексирует имя объекта (отношения), как я могу индексировать имя атрибута внутри объекта тега?
1 ответ
Решение
Вскоре после того, как задал вопрос, я нашел решение по одной из проблем на странице github:
def search_data
{
name: name,
intro: intro,
bio: bio,
tag_name: tags.map(&:name)
}
end
Это индексирует правильные атрибуты.