Apache solr在solr上执行之前验证查询

时间:2016-06-21 09:52:37

标签: php solr

我正在使用php和solr,我面临的问题是,无论何时动态构建查询,有时候查询没有正确的语法或传递适当的参数。

因此我在solr日志中收到错误。

我需要一个解决方案,以便应用程序不应该执行带语法错误的查询。

1 个答案:

答案 0 :(得分:0)

你的Solr库应该为你处理一切 - 逃避需要转义的地方等等。如果你自己构建了URL,你have to escape the values Solr expects to be escaped,并正确地将值编码为需要。

以下是上面ClientUtils链接的列表:

  // These characters are part of the query syntax and must be escaped
  if (c == '\\' || c == '+' || c == '-' || c == '!'  || c == '(' || c == ')' || c == ':'
    || c == '^' || c == '[' || c == ']' || c == '\"' || c == '{' || c == '}' || c == '~'
    || c == '*' || c == '?' || c == '|' || c == '&'  || c == ';' || c == '/'
    || Character.isWhitespace(c)) {