Ich habe eine Liste von Elementen wie:
%Vor% Nun hat jedes Element in i
ein Attribut, price
Ich möchte das Ergebnis einschränken, bei dem die Preisinformationen nicht verfügbar sind zusammen mit denen, die in einen bestimmten Bereich fallen
etwas wie
%Vor%Wie kann das gemacht werden?
Versuchen Sie Folgendes:
%Vor%ist logisch gleich und funktioniert in Solr.
Wie in der SolrQuerySyntax
Reine negative Abfragen: -
-field: [* TO *] findet alle Dokumente ohne Wert für Feld
Sie können versuchen: - q=(*:* -price:[* TO *]) OR price:[300 TO 400]
Das Ziel war es, einige Items nach Score zu sortieren, basierend auf einem Boosting nach Typ und plus, wenn ein Typ: bike Item ein Bild hat. Das Ergebnis sollte sein:
Dies war mein erster Abfrageansatz:
type:"car"^10000 OR type:"boat"^5000 OR (type:"bike" AND image-type:[* TO *])^100 OR type:"bike"^5
(funktioniert gut)
Aber ich habe alte Daten ohne das Type-Feld vergessen. Das sollte in der Ergebnismenge wie folgt aussehen:
Also habe ich meine Abfrage in -type:[* TO *] OR type:"car"^10000 OR type:"boat"^5000 OR (type:"bike" AND image-type:[* TO *])^100 OR type:"bike"^5
geändert und endete ohne Ergebnisse.
Also habe ich diesen Thread gefunden und versucht, meine Anfrage in -(type:[* TO *] OR -type:"car"^10000 OR -type:"boat"^5000 OR -(type:"bike" AND image-type:[* TO *])^100 OR -type:"bike"^5
) zu ändern, wie in dieser Antwort gezeigt Ссылка
Aber leider haben alle Gegenstände die gleiche Punktzahl: (
Die von Maurizio vorgeschlagene doppelt negierte Abfrage kann zu einem Fehler führen:
%Vor% (Auch nach Neuindexierung. Dies kann etwas mit den Einstellungen index
und store
und docvalues
des Feldes zu tun haben.)
Was Sie stattdessen tun könnten, ist, dass beide Bereiche (davor und danach) der Werte, für die Sie sich eigentlich interessieren, ausgenommen sind:
%Vor%Beachten Sie, dass die Werte 300 und 400 durch geschweifte Klammern in dieser negierten Abfrage ausgeschlossen werden und daher in den Suchergebnissen enthalten sind.
Man kann filter query
verwenden, wenn es Ihnen nicht wichtig ist, den Dokumenten-Score zu verwenden und den Filter-Cache zu nutzen, wie zum Beispiel:
Tags und Links python django solr django-haystack