我们的任务是按相关城市名称查找帖子,并按城市名称(包括城市)分组结果。帖子数。
在我们的位置字段中,我们有一个或多个以逗号分隔的城市名称:
柏林,法兰克福,..
<field name="location" type="text" indexed="true" stored="true"/>
我们必须仅以第一个字符为例寻找位置
f(小写):法兰克福(大写)-1200个帖子,弗莱堡-690个帖子,...
在我们的php / CakePHP代码中,我们有http查询bulider,如:
$fq = sprintf('location:%s*', mb_strtoupper($char));
$getResponse = $http->get($solrUrl, [
'facet.pivot' => 'location',
'facet.sort' => 'count',
'facet.limit' => 10000,
'facet.offset' => 0,
'facet' => 'true',
'facet.pivot.mincount' => 5,
'indent' => 'on',
'fq'=> $fq,
'wt' => 'json'
]);
响应:
[
'error' => [
'metadata' => [
(int) 0 => 'error-class',
(int) 1 => 'org.apache.solr.common.SolrException',
(int) 2 => 'root-error-class',
(int) 3 => 'org.apache.solr.common.SolrException'
],
'msg' => 'analyzer returned no terms for multiTerm term: F',
'code' => (int) 400
]
]
如何为我们的任务创建正确的查询?