Smile\ElasticsuiteCatalog\Model\ResourceModel\Search\Query::saveSearchResults PHP Method

saveSearchResults() public method

Save query with number of results and is spellchecked.
public saveSearchResults ( Magento\Search\Model\Query $query ) : void
$query Magento\Search\Model\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);
    }

Usage Example

Example #1
0
 /**
  * Append the fuzziness alert message + save the search result count.
  *
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  *
  * @param \Magento\CatalogSearch\Block\Result $resultBlock Result block.
  * @param \Closure                            $proceed     Original method.
  *
  * @return string[]
  */
 public function aroundGetNoteMessages(Result $resultBlock, \Closure $proceed)
 {
     $messages = $proceed();
     $query = $this->queryFactory->get();
     $query->setNumResults($this->resultCount);
     $query->setIsSpellchecked(false);
     if ($this->isSpellcheck() && $this->resultCount > 0) {
         $messages[] = __("No search results for: <b>'%1'</b>. We propose you approaching results.", $this->catalogSearchData->getEscapedQueryText());
         $query->setIsSpellchecked(true);
     }
     $this->queryResource->saveSearchResults($query);
     return $messages;
 }