In Solr, kann ich die Sortierung auf den passenden Wert aus einem multi-valued-Feld?

Betrachten wir ein schema mit zwei mehrwertige Felder. Die Suche erfolgt im ersten Feld, aber die Sortierung sollte getan werden, auf das zweite Feld mit dem entsprechenden Wert. E. g. wenn die Dokumente passen, weil der n-te Wert im ersten Feld (wo n kann unterschiedlich sein für jedes match), dann sollen Sie zurückgegeben werden sortiert nach der n-TEN Wert in das zweite Feld ein.

Ist das möglich?

Hintergrund: jedes Dokument hat eine Liste ähnlicher Dokumente (IDs) und eine entsprechende Liste mit der ähnlichkeit erzielt (Wert zwischen 0 und 1). Angesichts ID 42, die wir brauchen, um alle ähnlichen Dokumente (z.B. Dokumente mit 42 in das erste Feld), sortiert nach Ihrer ähnlichkeit zu Dokument 42.

Anderen schemas, die wir in Betracht ziehen, sind:

  1. Dynamische Felder für jede ID, damit wir Sortieren können, indem Sie das Feld Similarity_ID42 bei der Suche nach Dokumenten ähnlich 42. Dies scheint nicht zu skalieren, bei 800K+ Dokumente, CPU geht auf 100% bei der Indizierung.
  2. Einem einzigen multi-valued-Feld zu speichern "ID.score" als Dezimalzahl (z.B. 42.563) und dann ist die Suche für alle Dokumente, die einen Wert > 42 UND < 43, und das Sortieren nach diesem Wert (ich bin mir nicht einmal sicher, ob diese möglich ist).
  • Über die alternativen, die Sie sind, wenn man bedenkt ich bin nicht sicher, ob Sie Ihnen helfen wird. Würde Sie etwas Licht auf das, was Sie präsentieren wollen die Benutzer? Sie haben eine Liste von Dokumenten, und neben jedem Dokument eine andere Liste von ähnlichen Dokumenten?
  • Ich brauche einfach abrufen von Solr die Liste von Dokumenten, die ähnlich zu einem Dokument (mit der ID 42 in meinen Beispielen), sortiert nach Ihrer ähnlichkeit Partitur. Ich kann nicht scheinen zu finden ein Weg, um die Sortierung in Solr, wie dynamische Felder scheinen nicht zu skalieren, über einen bestimmten Punkt hinaus.
  • Da es langwierig, ich fügte hinzu, ein alternativer Ansatz auf meine Antwort.
Schreibe einen Kommentar