以下字符在 Solr 中有特殊含义,如果你使用这些字符或者含有这些字符的关键字去搜索,那么会报出400 bad request错误,因为在solr中这些字符是有特殊含义的。[shell]
+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \[/shell]
那么如何做呢,在搜索的时候可以处理一下,对这些进行转义或者直接去掉即可,可以使用程序处理或者使用solr的过滤器,这里程序处理可以这样:[php]
$pattern = array("/[~]/","/[:]/","/[(]/","/[)]/","/[\\\\]/","/[?]/","/[\"]/","/[\^]/","/[[]/","/[]]/","/[{]/","/[}]/","/[!]/","/[||]/","/[+]/","/[-]/","/[&&]/",'/[*]/');
$replace = array(" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ");
$keywords = preg_replace($pattern, $replace, $keywords);[/php]
solr的过滤器后续再将。
solr 特殊搜索字符
- Blackford
- 0