1

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

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

q:+人气:[10 TO *] +section:0

我正在使用

escapeQueryChars(+popularity:[10 TO *] +section:0)

但是逃跑后我无法得到结果。

4

2 回答 2

1

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

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

例如,如果您正在搜索5*除非转义,它将表现为通配符搜索并返回带有从 . 开始的标记的结果5

于 2013-02-08T04:27:24.993 回答
0

它只能用于查询

大多数时候,您将接受来自用户的查询。因此,必须转义这些字符以避免异常

用户搜索查询可以是:“Thomas' Calculus (12th Edition)” 上面的用户查询肯定会导致不需要的结果

$query = new SolrQuery('product_name:'.SolrUtils::escapeQueryChars($userQuery));
于 2014-02-26T23:40:49.860 回答