需要帮助onSolrUtils :: escapeQueryChars()用法

时间:2013-02-08 02:25:14

标签: php solr pecl

我想在编程中有一些真实的场景,我们可以使用这个solr util方法,即SolrUtils :: escapeQueryChars()。

现在我正在使用它来从solr中的查询中转义查询字符。

  

q:+受欢迎程度:[10 TO *] + section:0

我正在使用

  

escapeQueryChars(+人气:[10 TO *] +部分:0)

但我逃脱后无法得到结果。

2 个答案:

答案 0 :(得分:1)

SolrUtils :: escapeQueryChars通常用于转义Query中具有特殊含义的字符。

当前的字符列表是+ - && || ! ( ) { } [ ] ^ " ~ * ? : \,它们在Solr中具有特殊含义,如果不进行转义,行为会有所不同。

例如,如果您要搜索5*,除非进行转义,否则它将表现为通配符搜索并返回带有从5开始的标记的结果。

答案 1 :(得分:0)

仅用于查询

大多数情况下,您将接受来自用户的查询。因此,逃避这些字符以避免异常是必不可少的

用户搜索查询可以是:“Thomas'Crystulus(第12版)” 上面的用户查询肯定会导致不必要的结果

$query = new SolrQuery('product_name:'.SolrUtils::escapeQueryChars($userQuery));