Solr特殊字符转义处理

做站内搜索时,如果输入的参数中包含英文冒号、双引号或其他具有特殊含义的字符时,可能需要做转义来避免查不到数据的问题。

测试于:Solr 4.5.1, Jdk 1.6.0_45, Tomcat 6.0.37 | CentOS 5.7

异常信息:

如本站内有一篇文章标题为:
 java.lang.NumberFormatException: For input string: "MA147LL/A"

直接拿到搜索框搜反而出不来结果。

解决方法:

在搜索的action中将输入的参数(kw为keywords的缩写)做转义处理,即

import org.apache.solr.client.solrj.util.ClientUtils;String escapedKw = ClientUtils.escapeQueryChars(kw);

然后拿转义后的escapedKw去solr中查询,用户输入的参数kw的值不变用于回显到搜索框中。

相关信息:

solr特殊字符包含如下

+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \  

如过此内容对您有帮助,欢迎以点击广告的形式来支持我们,但请每天不要多于一次,否则可能被识别恶意点击,导致封号。

转载:http://www.devnote.cn/article/80.html

Solr特殊字符转义处理,布布扣,bubuko.com

时间: 2024-12-22 20:24:31

Solr特殊字符转义处理的相关文章

js对特殊字符转义、时间格式化、获取URL参数

/*特殊字符转义*/ function replace_html(str) { var str = str.toString().replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"'); return str; } /* *时间格式化 *例子:time = new Date().Format(

java 实现html特殊字符转义

html中的特殊字符,java后台接收会显示转义字符.例如 ' 会被显示成'", """); str = str.replace("”", """); str = str.replace(" ", " "); str = str.replace("&", "&"); str = str.replace("'&qu

filter过滤器实现特殊字符转义

web.xml <!-- 特殊字符转义或转换 --> <filter> <filter-name>XssFilter</filter-name> <filter-class>cn.zsmy.interceptor.XssFilter</filter-class> </filter> <filter-mapping> <filter-name>XssFilter</filter-name>

Oracle特殊字符转义:&amp;amp;和&amp;#39;

Oracle特殊字符转义:&和'    我们在SQL*PLUS下执行 SQL show all命令时,可以发现一个参数:define & (hex 26),如下所示 concat . (hex 2e) copycommit 0 copytypecheck ON define & (hex 26) describe DEPTH 1 LINENUM OFF INDENT OFFecho OFF 1.”&“ 转义 这个是Oracle里面用来识别自定义变量的设置,现在我们在SQL*

Oracle特殊字符转义:&amp;和&#39;

我们在SQL*PLUS下执行 SQL show all命令时,可以发现一个参数:define & (hex 26),如下所示 concat . (hex 2e) copycommit 0 copytypecheck ON define & (hex 26) describe DEPTH 1 LINENUM OFF INDENT OFFecho OFF 1."&" 转义 这个是Oracle里面用来识别自定义变量的设置,现在我们在SQL*PLUS下将其关闭: SQL

html特殊字符转义问题(转!)

html.javascript.url特殊字符转义在实际编程中都是有用到的,有的人对特殊字符转义的使用不是很清楚,下面就对html,javascript,url特殊字符的转义做一下说明和归纳. html特殊字符转义 html特殊字符转义的格式规定: & + 实体(Entity)或#加上实体(Entity) + ";" 例如:& 转义后变成了 & amp; 还记得刚学习html那会,做网页布局,需要用到很多空格,于是就不停地按空格来影响布局,可是看到效果却一点没有

网址URL中特殊字符转义编码

网址URL中特殊字符转义编码 字符    -    URL编码值 空格    -    %20 "          -    %22 #         -    %23 %        -    %25 &         -    %26 (          -    %28 )          -    %29 +         -    %2B ,          -    %2C /          -    %2F :          -    %3A ;  

jquery特殊字符转义方法

//特殊字符转义function escapeJquery(srcString) { // 转义之后的结果 var escapseResult = srcString; // javascript正则表达式中的特殊字符 var jsSpecialChars = ["\\", "^", "$", "*", "?", ".", "+", "(", &q

java用字符串拼接SQL语句的特殊字符转义问题

在实际的项目开发中,往往会根据用户在界面的文本框中输入的信息,去数据库中做模糊查询.如果使用的是原始的JDBC和SQL,往往需要对用户的输入进行转义,避免生成的sql语法错误,或者防止SQL注入.比如对输入的%和_和',就需要进行转义,因为这3个字符是SQL的特殊字符,如果不处理会导致sql出错或者是查询数据不正确. 假如有这样1个查询请求,模糊查询标题中包含a%b_cc'd的记录,正确的sql应该是下面这样的: select * from t_sch_work_info t where t.t