一,
Solr在搜索时需要注意,搜索的文字需要进行特殊字符处理,即对
Solr特殊字符进行转义
Solr特殊字符转义提供了一个工具类org.apache.solr.client.solrj.util.ClientUtils
使用的时候只需要String q = ClientUtils.escapeQueryChars("\\目录\\文章")就可以了
二,
- 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();
- }