solr 特殊搜索字符

  • 内容
  • 评论
  • 相关

以下字符在 Solr 中有特殊含义,如果你使用这些字符或者含有这些字符的关键字去搜索,那么会报出400 bad request错误,因为在solr中这些字符是有特殊含义的。

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

那么如何做呢,在搜索的时候可以处理一下,对这些进行转义或者直接去掉即可,可以使用程序处理或者使用solr的过滤器,这里程序处理可以这样:

        $pattern = array("/[~]/","/[:]/","/[(]/","/[)]/","/[\\\\]/","/[?]/","/[\"]/","/[\^]/","/[[]/","/[]]/","/[{]/","/[}]/","/[!]/","/[||]/","/[+]/","/[-]/","/[&&]/",'/[*]/');
        $replace = array(" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ");
        $keywords = preg_replace($pattern, $replace, $keywords);

solr的过滤器后续再将。

评论

0条评论

发表评论

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