Wie richte ich eine Facettensuche mit einer Viele-zu-Viele-Beziehung mithilfe von Sunspot ein?

8

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.

  • Wie kann ich die grundlegende Implementierung zum Laufen bringen?
  • Wie würde ich das in der Ansicht verwenden - muss ich hits.facet aufrufen und über die Fähigkeiten iterieren? Wie würde der Code aussehen, um dies anzuzeigen?
  • Wie würde ich mehrere zu suchende Facetten auswählen?
  • Soll ich das in das Community-Wiki aufnehmen?

Danke für Ihre Zeit!

    
the-undefined 26.03.2010, 09:43
quelle

1 Antwort

13

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):

outoftime 26.03.2010, 12:26
quelle