小编hai*_*son的帖子

在solr查询中需要转义哪些特殊字符?

更新:认为这个问题一般与solr语法有关,而不是特别是Chef.因此,当我遇到与Chef合作时,我认为任何与Solr一起工作的人也会遇到这个......


我正在开发一个与Chef服务器的搜索API进行通信的应用程序,以查找特定节点.

基于此http://docs.opscode.com/essentials_search.html#special-characters,似乎需要转义许多特殊字符.

注意:我只关注精确匹配模式,而不是通配符.我意识到其中一些字符是通配符的原因.

这是撰写本文时的列表,从上面的URL复制:

+  -  &&  | |  !  ( )  { }  [ ]  ^  "  ~  *  ?  :  \
Run Code Online (Sandbox Code Playgroud)

knife search但是,当我尝试使用这些字符的各种命令时,我会看到不一致的行为.

对于以下示例,我设置了一个标记有的节点 +&|!(){}[]^\"~*?:\\"

这些命令是从bash shell中的Linux机器上运行的:

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

这表现得如预期,因为没有任何东西被逃脱.现在,我\按照文档建议的方式逃避一切:

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

奇怪.

任何人都可以对此有所了解,也许可以建议一个能够匹配该标签的查询?

显然,任何人都不可能拥有包含所有这些特殊字符的属性,但我想更好地理解如何转义特殊字符.

谢谢!

lucene solr chef-infra knife

22
推荐指数
2
解决办法
5万
查看次数

标签 统计

chef-infra ×1

knife ×1

lucene ×1

solr ×1