当你在页面检索时,如果有特殊字符输入,在后台不经处理,就会产生异常,这个时候需要对特殊字符进行处理。
你需要引用一个jar,lucene-queryparser,按自己的es版本去添加
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>5.4.1</version>
</dependency>
使用QueryParser.escape(String query)方法处理字符即可,
如下:
String query="。、/}";
System.out.println("queryOrg="+query);
query=QueryParser.escape(query);
System.out.println("queryEnd="+query);
输出: queryOrg=。、/}
queryEnd=。、\/\}
从输出可以看出,是对特殊字符添加了"\"来处理,如果在其他的方用不到这个jar包,为了项目整洁,也可以自己写一个方法来做处理。
特殊字符汇总如下
参考:https://blog.csdn.net/gong_yangyang/article/details/77505039