Example #1
0
 /**
  * Save query with number of results and is spellchecked.
  *
  * @param QueryModel $query Search query object.
  *
  * @return void
  */
 public function saveSearchResults(QueryModel $query)
 {
     $adapter = $this->getConnection();
     $table = $this->getMainTable();
     $numResults = $query->getNumResults();
     $isSpellchecked = (int) $query->getIsSpellchecked();
     $saveData = ['store_id' => $query->getStoreId(), 'query_text' => $query->getQueryText(), 'num_results' => $numResults, 'is_spellchecked' => $isSpellchecked];
     $updateData = ['num_results' => $numResults, 'is_spellchecked' => $isSpellchecked];
     $adapter->insertOnDuplicate($table, $saveData, $updateData);
 }
Example #2
0
 /**
  * Convert all results to array
  *
  * @return array
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function toArray()
 {
     $result = ['totalItems' => 0, 'query' => $this->query->getQueryText(), 'indexes' => [], 'noResults' => false, 'urlAll' => $this->searchHelper->getResultUrl($this->query->getQueryText())];
     /** @var \Mirasvit\Search\Model\Index $index */
     foreach ($this->getIndexes() as $index) {
         $indexCode = $index->getCode();
         if ($indexCode == 'catalogsearch_fulltext') {
             $indexCode = 'magento_catalog_product';
         }
         $collection = $this->getCollection($index);
         $localIndex = $this->indexPool->get($indexCode);
         $localIndex->setCollection($collection);
         $items = ['code' => $indexCode, 'title' => $index->getTitle(), 'totalItems' => $collection->getSize(), 'isShowTotals' => $indexCode == 'magento_search_query' ? false : true, 'items' => $localIndex->getItems()];
         $result['indexes'][] = $items;
         $result['totalItems'] += $localIndex->getSize();
     }
     $result['textAll'] = __('Show all %1 results →', $result['totalItems']);
     $result['textEmpty'] = __('Sorry, nothing found for "%1".', $result['query']);
     $result['noResults'] = $result['totalItems'] ? false : true;
     return $result;
 }
Example #3
0
 /**
  * Save query with number of results
  *
  * @param QueryModel $query
  * @return void
  *
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function saveNumResults(QueryModel $query)
 {
     $adapter = $this->getConnection();
     $table = $this->getMainTable();
     $numResults = $query->getNumResults();
     $saveData = ['store_id' => $query->getStoreId(), 'query_text' => $query->getQueryText(), 'num_results' => $numResults];
     $updateData = ['num_results' => $numResults];
     $adapter->insertOnDuplicate($table, $saveData, $updateData);
 }
Example #4
0
 /**
  * Query text
  *
  * @return string
  */
 public function getQueryText()
 {
     return strip_tags($this->query->getQueryText());
 }