Ich habe eine Rails 5 App und ich versuche, eine Aggregationen Suche nach einer has_and_belongs_to_many
Assoziation zu tun. HierSearchkick Aggregationen für has_and_belongs_to_many
ist der Code, den ich bisher:
event.rb:
class Event < ApplicationRecord
searchkick text_start: [:title]
has_and_belongs_to_many :services
has_and_belongs_to_many :sectors
def search_data
atributes.merge(
title: title,
description: description,
sector_name: sectors.map(&:name),
service_name: services.map(&:name)
)
end
end
events_controller.rb:
def index
query = params[:j].presence || "*"
conditions = {}
conditions[:sector] = params[:sector] if params[:sector].present?
conditions[:service] = params[:service] if params[:service].present?
conditions[:date] = params[:date] if params[:date].present?
@events = Event.search query, where: conditions, aggs: [:sector, :service, :date], order: {created_at: {order: "desc"}}, page: params[:page], per_page: 10
end
Wenn ich Event.reindex
in der Konsole nenne ich erwartete um zu zeigen, dass die Sektoren und Dienstleistungen indexiert wurden, aber es funktioniert nicht.
Um ehrlich zu sein, ich bin ziemlich verloren und gehe im Kreis, so dass jede Hilfe sehr geschätzt würde.
Können Sie dieses Problem zu lösen? Ich versuche das Gleiche zu tun (mit Hilfe von Habtm-Assoziationen als Aggregationen), aber ich bin völlig verloren. –
Ja, habe ich getan. Ich habe den Code hinzugefügt, der für mich als Antwort funktioniert hat. Hoffe es hilft dir – BillyBib