Ради этого вопроса, скажем, у меня есть две модели:
Book
, которая имеет name
, created_at
, updated_at
и связанную модель Author
.
Author
, который имеет name
и birthdate
.
Для целей поиска я хочу выполнить два разных поиска:
- Поиск
Book
с по name
или author.name
- Поиск
Author
с по их name
- Требуется ли
search_data
, если у меня есть только прямые сопоставления полей модели с полями ElasticSearch? Например, достаточно ли на моей Author
модели только иметь searchkick searchable %i[name]
или мне также необходимо:
def search_data
{
name: name
}
end
- Как определить вложенные данные в Searchkick для поиска
Book
s Author.name
? В настоящее время я хотел бы сделать что-то подобное, однако из раздела Вложенные данные README кажется, что может быть другой способ сделать то же самое.
def search_data
{
name: name,
author_name: author.name
}
end
- Что, если у
Book
было много Author
с? Каков предлагаемый способ поиска книги по имени автора? Нечто подобное это лучшее, что я мог придумать до сих пор:
def search_data
{
name: name,
author_names: author.pluck(:name)
}
end