Synonyms.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Search\Adapter\Query\Preprocessor;
  7. use Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface;
  8. use Magento\Search\Api\SynonymAnalyzerInterface;
  9. class Synonyms implements PreprocessorInterface
  10. {
  11. /**
  12. * @var SynonymAnalyzerInterface
  13. */
  14. private $synonymsAnalyzer;
  15. /**
  16. * Constructor
  17. *
  18. * @param SynonymAnalyzerInterface $synonymsAnalyzer
  19. */
  20. public function __construct(SynonymAnalyzerInterface $synonymsAnalyzer)
  21. {
  22. $this->synonymsAnalyzer = $synonymsAnalyzer;
  23. }
  24. /**
  25. * {@inheritdoc}
  26. */
  27. public function process($query)
  28. {
  29. $synonyms = [];
  30. $synonymsArray = $this->synonymsAnalyzer->getSynonymsForPhrase($query);
  31. if (count($synonymsArray) > 0) {
  32. foreach ($synonymsArray as $synonymPart) {
  33. $synonyms [] = implode(' ', $synonymPart);
  34. }
  35. $query = implode(' ', $synonyms);
  36. }
  37. return $query;
  38. }
  39. }