/**
  * @param \Generated\Shared\Transfer\ProductSearchPreferencesTransfer $productSearchPreferencesTransfer
  *
  * @return void
  */
 public function save(ProductSearchPreferencesTransfer $productSearchPreferencesTransfer)
 {
     $this->productSearchQueryContainer->getConnection()->beginTransaction();
     $idProductAttributesMetadata = $productSearchPreferencesTransfer->requireIdProductAttributesMetadata()->getIdProductAttributesMetadata();
     $this->cleanProductSearchAttributeMap($idProductAttributesMetadata);
     $this->addFullText($productSearchPreferencesTransfer, $idProductAttributesMetadata)->addFullTextBoosted($productSearchPreferencesTransfer, $idProductAttributesMetadata)->addSuggestionTerms($productSearchPreferencesTransfer, $idProductAttributesMetadata)->addCompletionTerms($productSearchPreferencesTransfer, $idProductAttributesMetadata);
     /*
      * TODO: we need to touch all products to trigger collectors (search only if possible) to update the searchable data.
      * Maybe we'd need a different event to trigger the product search collector ("Apply search preferences" button in the UI).
      */
     $this->productSearchQueryContainer->getConnection()->commit();
 }