/**
  * Send the query to PredictionIO engine for product data set
  *
  * @param array $productIds
  * @param array $categories
  * @param array $whitelist
  * @param array $blacklist
  * @return array|bool
  */
 public function sendQuery(array $productIds, array $categories = [], array $whitelist = [], array $blacklist = [])
 {
     try {
         $data = ['items' => $productIds, 'num' => (int) $this->_config->getProductCount(Config::COMPLEMENTARY_PRODUCT_COUNT)];
         return $this->_engineClient->sendQuery($data);
     } catch (\Exception $e) {
         $this->_logger->addCritical($e);
     }
     return false;
 }
 /**
  * Send the query to PredictionIO engine for product data set
  *
  * @param array $productIds
  * @param array $categories
  * @param array $whitelist
  * @param array $blacklist
  * @return array|bool
  */
 public function sendQuery(array $productIds, array $categories = [], array $whitelist = [], array $blacklist = [])
 {
     try {
         $data = ['items' => $productIds, 'num' => (int) $this->_config->getProductCount(Config::SIMILARITY_PRODUCT_COUNT)];
         $this->_addProperties('categories', $data, $categories);
         $this->_addProperties('whitelist', $data, $whitelist);
         $this->_addProperties('blacklist', $data, $blacklist);
         return $this->_engineClient->sendQuery($data);
     } catch (\Exception $e) {
         $this->_logger->addCritical($e);
     }
     return false;
 }