org.apache.solr.search.SyntaxError:无法解析
错误原因:solr对于特殊字符,无法直接查询,需要对特殊字符签进行转译
//特殊字符:+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
//solr对于特殊字符,无法直接查询
//解决: 方法一:这里需要引用一个jar,lucene-queryparser,在solr参数查询时使用QueryParser.escape(queryParams) queryParams即为包含特殊字符的参数。
// 方法二:手动转译,加反斜杠“\”
if(str.contains("(") || sortid.contains(")")){
str= str.replace("(", "\\(")
.replace(")", "\\)");
}
方法一 可以在pom加依赖:
<!-- solr对于特殊字符,无法直接查询,这里需要引用一个jar,lucene-queryparser -->
<!-- 在solr参数查询时使用QueryParser.escape(queryParams) queryParams即为包含特殊字符的参数。 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>5.4.1</version>
</dependency>