¿Qué caracteres especiales necesitan escapar en una consulta solr?

Actualizar: I pensar Esta pregunta tiene que ver con la sintaxis de Solr en general, y no con Chef en particular. Entonces, mientras me encontraba trabajando con Chef, supongo que cualquiera que trabaje con Solr también experimentará esto ...

Estoy trabajando en una aplicación que se comunica con la API de búsqueda del servidor Chef para encontrar nodos particulares.

Basado en estohttp://docs.opscode.com/essentials_search.html#special-characters, parece que se deben escapar varios caracteres especiales.

Nota: Solo me preocupan los patrones de coincidencia exacta,no comodines Me doy cuenta de que algunos de estos personajes son comodines.

Aquí está la lista al momento de escribir esto, tal como se copió de la URL anterior:

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

Cuando pruebo variosknife search comandos con estos caracteres, sin embargo, veo un comportamiento inconsistente.

Para los siguientes ejemplos, configuré un nodo etiquetado con+&|!(){}[]^\"~*?:\\"

Estos comandos se ejecutaron desde una caja de Linux, en un shell bash:

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

Eso se comportó como se esperaba, ya que no se escapó nada. Ahora, escapo de todo con un solo\ como sugieren los documentos:

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

Extraño.

¿Alguien puede arrojar algo de luz sobre esto, y tal vez sugerir una consulta que sea capaz de coincidir con esa etiqueta?

Obviamente, es poco probable que alguien tenga un atributo que contenga todos esos caracteres especiales, pero me gustaría entender mejor cómo se deben escapar los caracteres especiales.

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta