2010-05-17 3 views
5

Ich habe innerhalb meines SOLR-Index Song-Objekte, die zu einem übergeordneten Album-Objekt gehören. Ein Beispiel ist unten dargestellt:Ich muss die Facetten, die von SOLR zurückkommen, nach Relevanz sortieren

<song> 
<album title>Blood Sugar Sex Magic</album title> 
<song title>Under the Bridge</song title> 
<description>A sad song about junkies</description> 
</song> 

Was ich im Moment tun kann, ist eine Facette auf dem Albumtitel erstellen, so dass eine Suche auf Songs auch mir zeigen, welche Alben enthalten Hits für dieses Keyword.

Das Standardverhalten für SOLR besteht darin, dass die Facetten in der Reihenfolge der meisten Treffer mindestens angezeigt werden. Was ich jedoch erreichen möchte, ist die Facettenliste, die nach der Relevanz des Top-Hits für das Album sortiert wird.

Zum Beispiel kann eine Suche auf dem Wort "sad" eine Facette mit einem Treffer für "Blood Sugar Sex Magic" zeigen und es kann auch ein Album namens "Sad Clown songs" geben, wo es 10 Treffer gibt. "Traurige Clownsongs" werden als erste Facette erscheinen, auch wenn "Under the Bridge" als das relevanteste Lied erscheint.

Meine Frage ist, wie kann ich alle Facetten zurück bekommen, aber dann haben sie nach der Relevanz der Songs in ihnen geordnet? Wenn ich etwas zugrunde liegenden SOLR-Code ändern oder erweitern müsste, was wäre das?

Vielen Dank im Voraus.

Antwort

4

Solr kann Facetten nur lexikografisch oder nach Anzahl sortieren (siehe facet.sort parameter).

Wenn Sie eine andere Sortierreihenfolge implementieren möchten, würde ich in SimpleFacets class starten.

1

Am Ende entschieden wir uns für den einfachsten Weg, dies zu tun, ohne den SOLR-Quellcode modifizieren zu müssen, würden Solr abfragen, nach den Facetten fragen und dann durch die Ergebnisse iterieren.

Nicht ideal, aber funktioniert für jetzt.

Verwandte Themen