Агрегации Searchkick по классу модели

Моя реализация searchkick выполняет поиск по нескольким индексам. Это выглядит так:

@results = Searchkick.search(
  params[:query],
  index_name: [Actors, Producers, Directors],
  fields: ["name"],
  indices_boost: {Actors => 4, Producers => 8, Directors => 2},
  page: params[:page],
  per_page: cookies[:per_page]
  )

Как реализовать агрегацию, чтобы фильтровать результаты по классу (актеры, продюсеры, режиссеры)?


person amoks    schedule 21.08.2020    source источник


Ответы (1)


Я смог исправить это, добавив в свою модель следующие search_data.

def search_data
 {
   name: name,
   class_name: self.class.name
 }
end

А затем обновил контроллер:

@results = Searchkick.search(
  params[:query],
  index_name: [Actors, Producers, Directors],
  fields: ["name"],
  indices_boost: {Actors => 4, Producers => 8, Directors => 2},
  aggs: {class_name:{}},
  page: params[:page],
  per_page: cookies[:per_page]
  )
person amoks    schedule 31.08.2020