$this->eventDispatcher->
dispatch( new ProductSearchCriteriaEvent($request,
$criteria,
$context),
ProductEvents::PRODUCT_SEARCH_CRITERIA
);
$response =
$this->
getDecorated()->
load($request,
$context,
$criteria);
$this->processor->
process($request,
$response->
getListingResult(),
$context);
$this->eventDispatcher->
dispatch( new ProductSearchResultEvent($request,
$response->
getListingResult(),
$context),
ProductEvents::PRODUCT_SEARCH_RESULT
);
$response->
getListingResult()->
addCurrentFilter('search',
$request->
get('search'
));
return $response;
}}