public function query(SearchCriteria $criteria, QueryOptions $queryOptions) : SearchEngineResponse
 {
     $query = new SolrQuery($criteria, $queryOptions);
     $facetFiltersToIncludeInResult = $queryOptions->getFacetFiltersToIncludeInResult();
     $filterSelection = $queryOptions->getFilterSelection();
     $facetFilterRequest = new SolrFacetFilterRequest($facetFiltersToIncludeInResult, $filterSelection, $this->facetFieldTransformationRegistry);
     $response = $this->querySolr($query, $facetFilterRequest);
     $totalNumberOfResults = $response->getTotalNumberOfResults();
     $matchingProductIds = $response->getMatchingProductIds();
     $facetFieldsCollection = $this->getFacetFieldCollectionFromSolrResponse($response, $query, $filterSelection, $facetFiltersToIncludeInResult);
     return new SearchEngineResponse($facetFieldsCollection, $totalNumberOfResults, ...$matchingProductIds);
 }