Ojs\CoreBundle\Service\Search\NativeQueryGenerator::advancedQueryGenerator PHP Метод

advancedQueryGenerator() приватный Метод

Advanced query generator
private advancedQueryGenerator ( $section ) : mixed
$section
Результат mixed
    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;
    }