solr是基于 lucence,非常的傲娇,如果query中带有非法字符串,结果直接报错,所以你对用户的输入必须要先做处理.o 非法字符串的官方说明 http://wiki.apache.org/solr/SolrQuerySyntax http://lucene.apache.org/core/400/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#Escaping%20Special%20Characters 非法字符串有这些 + - && || ! ( ) { } [ ] ^ " ~ * ? : \ / 过滤的方法很简单,用\ 进行转义 solr 官方的处理方法 https://svn.apache.org/repos/asf/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/util/ClientUtils.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15……

阅读全文