/**
  * Process the search query.
  *
  * @param JDatabaseQuery $query    The query object.
  * @param array          $searches The search values.
  *
  * @return  JDatabaseQuery The db query object.
  */
 protected function processSearches(JDatabaseQuery $query, $searches = array())
 {
     $searches = $searches ?: $this->state->get('search', array());
     $searches = ArrayHelper::flatten($searches);
     $searches = $this->filterDataFields($searches);
     $searches = $this->mapDataFields($searches);
     $searchHelper = $this->getSearchHelper();
     $this->configureSearches($searchHelper);
     $query = $searchHelper->execute($query, $searches);
     return $query;
 }