examples - solr near
¿Qué caracteres especiales necesitan escapar en una consulta solr? (2)
Debe utilizar la sintaxis de lucine solr para las expresiones regulares: http://lucene.apache.org/core/6_5_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#Escaping_Special_Characters
Actualización: creo que esta pregunta tiene que ver con la sintaxis de solr en general, y no con Chef en particular. Entonces, mientras trabajaba 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.
Sobre la base de este http://docs.opscode.com/essentials_search.html#special-characters , parece que es necesario escapar algunos caracteres especiales.
Nota: solo me preocupan los patrones de coincidencia exacta, no los comodines. Me doy cuenta de que la razón por la que algunos de estos personajes son comodines.
Aquí está la lista en el momento de escribir esto, como se copió de la URL anterior:
+ - && | | ! ( ) { } [ ] ^ " ~ * ? : /
Cuando intento varios comandos de knife search
con estos personajes, sin embargo, veo un comportamiento inconsistente.
Para los siguientes ejemplos, configuro un nodo que está etiquetado con +&|!(){}[]^/"~*?://"
Estos comandos se ejecutaron desde un cuadro de Linux, en un shell bash:
$ knife search node ''tags:+&|!(){}[]^"~*?:/'
ERROR: knife search failed: invalid search query: ''tags:+&|!(){}[]^"~*?:/'
Que se comportó como se esperaba, ya que nada se escapó. Ahora, me 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 hacer coincidir 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!
Puede ser una buena idea visitar http://lucene.apache.org/solr/4_2_1/solr-solrj/org/apache/solr/client/solrj/util/ClientUtils.html#escapeQueryChars(java.lang.String)