Solr: Wie kann ich auf zwei verschiedenen Feldern gruppieren?

8

Mein Schema ist wie folgt:

%Vor%

Eine Kategorie enthält Produkte.
In solr 3.6 gruppiere ich Ergebnisse auf category_id und es funktioniert gut.

Ich habe gerade ein neues Feld hinzugefügt:

%Vor%

Eine Gruppe enthält Produkte, die nach Größe oder Farbe variieren.
Beispiel: Schuhe in blau, rot und gelb sind 3 verschiedene Produkte und haben die gleiche group_id.

Zusätzlich zu der Ergebnisgruppierung für das Feld category_id möchte ich in meinen Ergebnissen nur ein Produkt für eine group_id haben, vorausgesetzt, group_id kann null sein (für Produkte, die nicht zu einer Gruppe gehören).

Um dem Beispiel der Schuhe zu folgen, bedeutet dies, dass für die Anfrage "Schuh" nur eines der 3 Produkte in den Ergebnissen enthalten sein sollte.

Ich dachte, eine zweite Ergebnisgruppierung auf group_id zu machen, aber das scheint mir nicht möglich zu sein.

Irgendeine Idee?

BEARBEITEN: Zur Zeit verarbeite ich die Ergebnisse in PHP, um Dokumente zu löschen, die eine group_id haben, die bereits in den Ergebnissen ist. Ich lasse dieses Thema offen, falls jemand findet, wie man auf 2 Feldern gruppiert

    
Elodie 02.04.2013, 07:49
quelle

3 Antworten

3

Es ist nicht möglich, nach einer Abfrage in zwei Feldern zu gruppieren. Wenn Sie zählen müssen, können Sie facet.field (für einzelnes Feld) oder facet.pivot (für mehrere Felder) verwenden. Es ist nicht wirklich eine Gruppe, aber Sie können diese Gruppe für mehrere Felder zählen.

Beispielausgabe:

%Vor%

Beispielabfrage:

%Vor%     
Sunil Kanzar 10.05.2017 06:59
quelle
2

Wenn Sie die Daten, die Sie veröffentlichen, in solr ändern können, schlage ich vor, dass Sie ein Zeichenfolgenfeld mit einer Verkettung von category_id und group_id erstellen. Zum Beispiel, wenn die category_id = 5 und group_id = 2, dann kann Ihr String-Feld sein: - '5,2' (mit ',' oder einem anderen Zeichen als Trennzeichen). Sie können dann dieses String-Feld gruppieren.

    
Max 03.04.2013 18:16
quelle
2

Wenn Ihr Ziel ist es zählt zu erhalten Gruppierung basierend auf mehrere „Gruppe“ Felder, können Sie Dreh Facettierung , dies zu erreichen.

%Vor%

Solr gibt Ihnen eine Hierarchie von gruppierten Ergebnis zählt zurück, nach der Seite der Suchergebnisse unter facet_pivot Elemente.

Ссылка

    
RMorrisey 30.12.2013 15:59
quelle

Tags und Links