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

Обновить: I считать этот вопрос имеет отношение к синтаксису solr в целом, а не к Chef в частности. Так что, хотя я столкнулся с этой работой с Chef, я предполагаю, что любой, кто работает с Solr, также испытает это ...

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

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

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

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

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

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

Для следующих примеров я настроил узел с тегом+&|!(){}[]^\"~*?:\\"

Эти команды были запущены из окна 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:\+\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\'

Странный.

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

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

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос