Sie können mehrere SORT-Bedingungen verwenden:
Mehrere Sortierreihenfolgen können durch ein Komma getrennt werden, dh: sort = + [, +] ...
Also, in Ihrem Fall wäre: sort = score DESC, date_added DESC
Ich möchte Suchergebnisse von SOLR haben, die wie folgt lauten:
Alle Dokumente, die die gleiche Punktzahl haben, werden absteigend nach dem hinzugefügten Datum sortiert.
Also wenn ich solr abfrage, werde ich n Dokumente haben. In diesem Ergebnissatz gibt es Gruppen von Dokumenten mit demselben Ergebnis. Ich möchte, dass jede dieser Dokumentengruppen absteigend nach Datum hinzugefügt wird.
Ich entdeckte, dass ich dies mit Funktionsabfragen erreichen kann, genauer gesagt mit %code% function Ссылка , aber als es ist in der Dokumentation
angegebenWARNUNG: ab solr 1.4 können ord () und rord () zu viel Speicher verwenden da sie einen FieldCache-Eintrag auf dem Top-Level-Reader verwenden müssen, während Sortier- und Funktionsabfragen verwenden jetzt Einträge auf Segmentebene. Daher Sortieren oder Verwenden einer anderen Funktionsabfrage, zusätzlich zu ord () / rord () verdoppelt die Speicherbelegung.
verursacht übermäßigen Speicherverbrauch.
Welche anderen Optionen habe ich?
Ich dachte daran, %code% zu verwenden. Ist das der beste Ansatz?
Gibt es irgendwelche negativen Auswirkungen auf die Leistung, wenn ich recip und ms verwende?
Da Ihre Fragen sagen:
Alle Dokumente mit demselben Ergebnis werden absteigend sortiert nach Datum hinzugefügt.
Die andere Antwort ist perfekt.
Wie auch immer, ich würde Ihnen empfehlen, sicherzustellen, dass Sie das Datum nur nach einem Dokument mit demselben Ergebnis sortieren möchten. Nach meiner Erfahrung war das immer falsch. Tatsächlich ist der solr-Score nicht absolut, sondern nur relativ zu anderen Dokumenten, und jedes Dokument ist anders.
Daher würde ich nicht nach Partitur und dann noch nach etwas anderem sortieren, weil es schwer vorhersehbar ist, wann Sie für verschiedene Dokumente die gleiche Punktzahl erhalten. Ich würde persönlich nur auf %code% sortieren und eine Funktion verwenden, um neuere Dokumente zu verbessern. Sie können ein gutes Beispiel auf dem solr Wiki finden, die dort verwendete Funktion ist %code% .
Wenn Sie sich Sorgen um die Leistung machen, können Sie versuchen, die Zeit für die Indexerhöhung zu erhöhen. Sehen Sie sich hier an.