private function advancedQueryGenerator($section)
{
$sectionParams = $this->getSearchParamsBag()[$section];
$from = ($this->getPage() - 1) * $this->getSearchSize();
$size = $this->getSearchSize();
$queryArray['from'] = $from;
$queryArray['size'] = $size;
$advancedQuery = trim(preg_replace('/advanced:/', '', $this->query));
$queryArray['query']['filtered']['query']['bool']['should'][] = ['query_string' => ['query' => $advancedQuery]];
if (!empty($this->requestAggsBag)) {
foreach ($this->requestAggsBag as $requestAggKey => $requestAgg) {
if (!in_array($requestAggKey, $sectionParams['aggs'])) {
continue;
}
foreach ($requestAgg as $aggValue) {
$queryArray['query']['filtered']['filter']['bool']['must'][] = ['term' => [$section . '.' . $requestAggKey => $aggValue]];
}
}
}
if ($this->setupAggs) {
foreach ($sectionParams['aggs'] as $agg) {
$queryArray['aggs'][$agg] = ['terms' => ['field' => $section . '.' . $agg]];
}
}
return $queryArray;
}