Ich möchte alle Dokumente, die inv = 0 (mögliche Werte von 0 bis 1000) bis zum Ende der Ergebnismenge haben. Ich habe andere Sortieroptionen wie Name desc auch als Teil der Abfrage.Solr degree alle Dokumente mit Bedingung
Zum Beispiel sind unter meinem solr Dokumente
Doc1 : name=apple , Inv=2
Doc2 : name=ball , Inv=1
Doc3 : name=cat , Inv=0
Doc4 : name=dog , Inv=0
Doc5 : name=fish , Inv=4
Doc6 : name=Goat , Inv=5
I unten Sortierung erreichen wollen ... hier, ich will mit inv alle Dokumente drücken = 0 nach unten nach unten und dann „name asc“ anwenden zu sortieren.
Doc1
Doc2
Doc5
Doc6
Doc3
Doc4
meine solr Anfrage ist wie
bq: "(: UND -inv:" 0 ")^999.0" & Deftype: "edismax"
hier 999 ist der Rang, den ich gegeben habe, um die Ergebnisse zu degradieren.
diese Erhöhung Abfrage funktioniert gut. Es verschiebt alle Dokumente mit inv = 0 nach unten.
Aber wenn ich & sort = name asc der Solr-Abfrage hinzufügen, priorisiert es "Sortierung" über bq..ich sehe unten Ergebnisse mit "name asc".
Doc1 : name=apple , Inv=2
Doc2 : name=ball , Inv=1
Doc3 : name=cat , Inv=0
Doc4 : name=dog , Inv=0
Doc5 : name=fish , Inv=4
Doc6 : name=Goat , Inv=5
kann mir bitte jemand helfen. ?
Dank. Aber ich möchte nicht nach Inv sortieren (Inventar kann Werte von 0 bis 1000 haben). Ich möchte nur nach Namen sortieren, habe aber alle Datensätze, die am Ende den Wert 0 haben. Ist die Kartenfunktion hier verwendbar. Wie kann ich es verwenden – user3085317
"Alle Datensätze, die Wert 0 am Ende haben" ist standardmäßig Sortieren. Durch Verwendung der "if" -Funktionsabfrage, wie dargestellt (oder der Min-Version), sind die einzigen Werte entweder 0 oder 1 zum Sortieren. Das nächste Sortierfeld gibt dann die Richtung innerhalb dieser Sortierung wieder. Bitte geben Sie ein Beispiel, wenn dies nicht wie erwartet das richtige Ergebnis liefert. Die Verwendung einer Karte sollte nicht notwendig sein (wäre aber möglich), aber Sie müssten immer noch nach dem Wert sortieren, um die Dokumente als letzte zu erhalten. – MatsLindh
Hallo, ich habe versucht & sort = min (1, Feld (inv)) desc, name_ntk desc es hat nicht funktioniert. – user3085317