Подтвердить что ты не робот

Какие специальные символы нужно выполнить в запросе solr?

Обновление: Я думаю, что этот вопрос связан с синтаксисом solr в целом, а не с Chef в частности. Поэтому, пока я сталкивался с этим, работая с шеф-поваром, я полагаю, что любой, кто работает с Solr, также испытает это...


Я работаю над приложением, которое связывается с API поиска Chef для поиска определенных узлов.

Основываясь на этом http://docs.opscode.com/essentials_search.html#special-characters, кажется, что нужно выделить несколько специальных символов.

Примечание.. Меня интересуют только точные шаблоны, а не шаблоны. Я понимаю, что некоторые из этих символов являются подстановочными знаками.

Здесь список на момент написания этой статьи, скопированный с URL-адреса выше:

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

Когда я пытаюсь использовать различные команды knife search с этими символами, я вижу противоречивое поведение.

В следующих примерах я настроил node, помеченный +&|!(){}[]^\"~*?:\\"

Эти команды выполнялись из окна Linux в оболочке bash:

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

Это пошло так, как ожидалось, поскольку ничего не ускользнуло. Теперь я избегаю всего с помощью одного \, как предлагают документы:

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

Странно.

Может ли кто-нибудь пролить свет на это и, возможно, предложить запрос, способный сопоставить этот тег?

Очевидно, маловероятно, что у кого-нибудь будет атрибут, содержащий все эти специальные символы, но я хотел бы лучше понять, как экранировать специальные символы.

Спасибо!

4b9b3361