Ради этого вопроса, скажем, у меня есть две модели:
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
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