Solr получить количество граней после группировки

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

У меня также есть различные партнеры, от которых я получаю работу. Я хочу предоставить количество рабочих мест на одного партнера, ПОСЛЕ группировки.

пока мой (урезанный) код выглядит так:

// create client(solr) instance
$client = new Solarium\Client($solr_config);

// get a select query instance
$query = $client->createSelect();

// query for all, for now
$query->setQuery('*:*');

// get the facetset component
$facetSet = $query->getFacetSet();

// create a facet field instance and set options
$facetSet->createFacetField('partners')->setField('partner');

// BUNCH OF CODE THAT ADDS FILTERQUIERIES ETC

// group jobs by jobref to avoid dupes (multiple locations)
$groupComponent = $query->getGrouping();
$groupComponent->addField('jobref');
$groupComponent->setLimit(1); // maximum number of items per group, only want the 1
$groupComponent->setNumberOfGroups(true);

// this executes the query and returns the result
$resultset = $client->select($query);

// get the grouped results
$groups = $resultset->getGrouping();

// get the facets
$facet = $resultset->getFacetSet()->getFacet('partners');
foreach ($facet as $value => $count) {
echo $value . ' [' . $count . ']<br/>';
}

$jobs = array();

// TODO: does this have to be so complicated??
foreach ($groups as $groupKey => $fieldGroup) {
$total_jobs = $fieldGroup->getNumberOfGroups();
foreach ($fieldGroup as $valueGroup) {
foreach ($valueGroup as $document) {
array_push($jobs, $document);
}
}
}

тем не менее, я вижу, что мои фасеты вычисляются до группировки, как если бы я добавил фильтр-запрос для конкретного партнера, мой фасет был больше, чем мой общий результат (сгруппированный). Как я могу рассчитать / получить аспекты после группировки ??

это использует солярий php

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]