2016-11-09 1 views
0

Ich möchte nur vier bestimmte Zeichenfolgen der SpalteWie Abfragen einer Liste von Elementen derselben Spalte mithilfe der Solr-Abfragesyntax?

‚lastSnapshotStream‘ auszulassen

Meine übliche Phrase Abfragesyntax mit Solr (die funktioniert) ist:

(NOT lastSnapshotStream:"CM-NIS-22.5.5" AND NOT lastSnapshotStream:"CM-NIS-22.6" AND NOT lastSnapshotStream:"CM-NIS-22.7" AND NOT lastSnapshotStream:"CM-NIS-22.5") 

Das ist wirklich groß. Wie man etwas darunter vereinfacht ???

(NOT lastSnapshotStream IN ("CM-NIS-22.5.5","CM-NIS-22.6","CM-NIS-22.7","CM-NIS-22.5")) 

oder

(lastSnapshotStream: NOT IN ("CM-NIS-22.5.5","CM-NIS-22.6","CM-NIS-22.7","CM-NIS-22.5")) 

Antwort

1

können Sie die field:(val1 OR val2 OR val3) Syntax IN zu erreichen:

*:* -lastSnapshotStream:("CM-NIS-22.5.5" OR "CM-NIS-22.6" OR "CM-NIS-22.7" OR "CM-NIS-22.5")

(die *:* vor nicht notwendig ist, wenn man nur die -field mit Begriff, wie es Ihrer Anfrage vorangestellt werden sollte, wenn nicht dort). Es ist wichtig, dass OR groß geschrieben wird.

1

Wenn der Standard-Operator OR (Standard), dann können Sie nur

setzen
NOT lastSnapShotStream:(CM-NIS-22.5.5 CM-NIS-22.6.6 CM-NIS-22.4.4) 
+0

wo sind die Zitate und Komma in geschweiften Klammern für die Einzelteile? –

+1

Das Komma wird nicht benötigt. Der Standardoperator ist OR, daher entspricht die Abfrage lastSnapShotStream: (CM-NIS-22.5.5 ODER CM-NIS-22.6.6). –

+1

Die Anführungszeichen sind nicht erforderlich ist mein Beispiel, da das verwendete Feld als StrField im Schema definiert ist. Normalerweise würde ich diese Art von Feld für ID-Strings verwenden, da das Anwenden von linguistischen Regeln normalerweise keinen Sinn ergibt. –

Verwandte Themen