Ich habe noch keine Suchfunktion implementiert und fühle mich ein bisschen festgefahren. Ich habe eine Sunspot-Suchfunktion, die Ergebnisse basierend auf Stichwörtern findet - das funktioniert großartig - aber ich möchte jetzt die Multi-Select-Facettenfunktion implementieren, aber ich kann nicht einmal herausfinden, wie man eine grundlegende Facettensuche einrichtet / p>
Ich habe eine Beziehung von vielen zu vielen (in Schienen, nicht im wirklichen Leben):
Klasse Leute has_many: skills,: through = & gt; Erfahrung (und umgekehrt usw.)
%Vor%In der Steuerung
%Vor%Dies ist das grundlegende Beispiel, in dem ich nicht arbeiten kann. Es erzeugt diesen Fehler:
%Vor%Wie erstelle ich den Link zu: skill_ids
Ich denke, ich muss eine Referenz im Modell vermissen - aber keine Beispiele, die ich finden kann, beziehen sich auf die IDs einer Beziehung. Die meisten der Beispiele, die ich gefunden habe, verwenden Spalten, die sich bereits in diesem Modell befinden, wenn Sie die Facettenfunktionalität verwenden.
Danke für Ihre Zeit!
Alles was Sie filtern, facettieren oder bestellen möchten, darüber muss Sunspot Bescheid wissen. Also in deinem Modell:
%Vor%Ihr # Suchanruf in Ihrem Controller sieht richtig aus. Aus Ihrer Sicht würden Sie etwas in diese Richtung tun:
%Vor% row.instance
gibt die Instanz von Skill zurück, auf die sich der Wert der Zeile bezieht (das ist die Option :references
in der searchable
-Definition).
Ich bin mir nicht sicher, was Sie meinen, indem Sie "mehrere Facetten auswählen, nach denen gesucht werden soll" - man kann mehrere Facetten generieren (die den Benutzern Auswahlmöglichkeiten zur weiteren Verfeinerung der Suche geben), indem sie facet
aufrufen. Methode mehrmals in einer Suche; Sie können dann ihre Facettenoptionen mit Bereichsbeschränkungen mithilfe der with
-Methode verwenden, die Sie auch beliebig oft aufrufen können.
Apropos Wikis: Die meisten dieser Informationen sind im Sunspot-Wiki verfügbar (mit mehr Erklärungen):
Tags und Links ruby-on-rails search many-to-many faceted-search sunspot