Welche Sonderzeichen müssen in einer solr-Abfrage maskiert werden?

Aktualisieren: I denken Diese Frage hat mit der Solr-Syntax im Allgemeinen und nicht mit dem Chef im Besonderen zu tun. Ich gehe also davon aus, dass jeder, der mit Solr arbeitet, diese Erfahrung machen wird, während ich auf die Zusammenarbeit mit Chefkoch gestoßen bin ...

Ich arbeite an einer Anwendung, die mit der Such-API des Chef-Servers kommuniziert, um bestimmte Knoten zu finden.

Basierend aufhttp://docs.opscode.com/essentials_search.html#special-charactersEs scheint, dass eine Reihe von Sonderzeichen maskiert werden müssen.

Hinweis: Ich bin nur mit genau passenden Mustern beschäftigt,nicht Platzhalter. Mir ist klar, dass es sich bei einigen dieser Zeichen um Platzhalter handelt.

Hier ist die Liste zum Zeitpunkt des Schreibens, wie von der obigen URL kopiert:

+  -  &&  | |  !  ( )  { }  [ ]  ^  "  ~  *  ?  :  \

Wenn ich verschiedene probiereknife search Befehle mit diesen Zeichen sehe ich jedoch inkonsistentes Verhalten.

Für die folgenden Beispiele habe ich einen Knoten eingerichtet, der mit einem Tag versehen ist+&|!(){}[]^\"~*?:\\"

Diese Befehle wurden von einer Linux-Box in einer Bash-Shell ausgeführt:

$ knife search node 'tags:+&|!(){}[]^"~*?:\'
ERROR: knife search failed: invalid search query: 'tags:+&|!(){}[]^"~*?:\'

Das hat sich wie erwartet verhalten, da nichts entgangen ist. Jetzt entkomme ich alles mit einem einzigen\ wie in den dokumenten angegeben:

$ knife search node 'tags:\+\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\'
ERROR: knife search failed: invalid search query: 'tags:\+\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\'

Seltsam.

Kann jemand etwas Licht ins Dunkel bringen und vielleicht eine Abfrage vorschlagen, die mit diesem Tag übereinstimmt?

Es ist offensichtlich unwahrscheinlich, dass irgendjemand jemals ein Attribut mit all diesen Sonderzeichen haben wird, aber ich möchte besser verstehen, wie die Sonderzeichen ausgeblendet werden sollten.

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage