在Solr中,下列字符有特殊含義,需轉義處理,否則查詢下列字符會報查詢錯誤。
+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \
代碼如下:
public static String transformSolrMetacharactor(String input){
StringBuffer sb = new StringBuffer();
String regex = "[+\\-&|!(){}\\[\\]^\"~*?:(\\)]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while(matcher.find()){
matcher.appendReplacement(sb, "\\\\"+matcher.group());
}
matcher.appendTail(sb);
return sb.toString();
}