Solr 6.6 - Найти и сгруппировать запрос по первому символу - PullRequest
0 голосов
/ 15 марта 2019

У нас есть задача найти сообщения по связанным названиям городов и результаты групп по названию городов, вкл. количество сообщений.

В нашем поле местоположения у нас есть одно или несколько названий городов, разделенных запятой:

Берлин, Франкфурт, ..

<field name="location" type="text" indexed="true" stored="true"/>

Мы должны искать местоположение только по первому символу, например

f (в ​​нижнем регистре): Франкфурт (в верхнем регистре) - 1200 сообщений, Фрайбург - 690 сообщений, ...

в нашем коде php / CakePHP у нас есть http-запрос, похожий на:

    $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
    ]
]

Как создать правильный запрос для нашей задачи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...