我正在使用php和solr,我面临的问题是,无论何时动态构建查询,有时候查询没有正确的语法或传递适当的参数。
因此我在solr日志中收到错误。
我需要一个解决方案,以便应用程序不应该执行带语法错误的查询。
答案 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)) {