Smile\ElasticsuiteCore\Search\Adapter\Elasticsuite\Request\Mapper::buildSearchRequest PHP Method

buildSearchRequest() public method

Transform the search request into an ES request.
public buildSearchRequest ( Smile\ElasticsuiteCore\Search\RequestInterface $request ) : array
$request Smile\ElasticsuiteCore\Search\RequestInterface Search Request.
return array
    public function buildSearchRequest(RequestInterface $request)
    {
        $searchRequest = ['from' => $request->getFrom(), 'size' => $request->getSize(), 'sort' => $this->getSortOrders($request)];
        $query = $this->getRootQuery($request);
        if ($query) {
            $searchRequest['query'] = $query;
        }
        $filter = $this->getRootFilter($request);
        if ($filter) {
            $searchRequest['filter'] = $filter;
        }
        $aggregations = $this->getAggregations($request);
        if (!empty($aggregations)) {
            $searchRequest['aggregations'] = $aggregations;
        }
        return $searchRequest;
    }

Usage Example

Example #1
0
 /**
  * Execute the search request with ES.
  *
  * @param RequestInterface $request Search request.
  *
  * @return array
  */
 private function doSearch(RequestInterface $request)
 {
     $searchRequest = ['index' => $request->getIndex(), 'type' => $request->getType(), 'body' => $this->requestMapper->buildSearchRequest($request)];
     return $this->client->search($searchRequest);
 }