solr 特殊搜索字符

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

Avatar photo

About Blackford

这是个最好的时代,这是个最坏的时代,这是个充满希望的春天,这是个令人绝望的冬天,我们前面什么都有,我们前面什么都没有。梦想,让我们一次次的走远,又一次次的回头,一个关于人生的梦想还在不断奔跑,带着喜悦和疼痛,不过一切才刚刚开始,并且直到今天也远远没有结束
This entry was posted in 架构运维 and tagged , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注