Smile\ElasticsuiteCore\Search\Adapter\Elasticsuite\Request\SortOrder\Builder::buildSortOrder PHP Method

buildSortOrder() private method

Build a sort order ES condition from a SortOrderInterface specification.
private buildSortOrder ( Smile\ElasticsuiteCore\Search\Request\SortOrderInterface $sortOrder ) : array
$sortOrder Smile\ElasticsuiteCore\Search\Request\SortOrderInterface Request sort order specification object.
return array
    private function buildSortOrder(SortOrderInterface $sortOrder)
    {
        $sortField = $sortOrder->getField();
        $sortOrderConfig = ['order' => $sortOrder->getDirection(), 'missing' => $sortOrder->getDirection() == SortOrderInterface::SORT_ASC ? '_last' : '_first', 'unmapped_type' => FieldInterface::FIELD_TYPE_STRING];
        if ($sortOrder->getType() == SortOrderInterface::TYPE_NESTED) {
            $sortOrderConfig['nested_path'] = $sortOrder->getNestedPath();
            $sortOrderConfig['mode'] = $sortOrder->getScoreMode();
            if ($sortOrder->getNestedFilter()) {
                $sortOrderConfig['nested_filter'] = $this->queryBuilder->buildQuery($sortOrder->getNestedFilter());
            }
        }
        return [$sortField => $sortOrderConfig];
    }