Smile\ElasticsuiteThesaurus\Model\Index::computeQueryRewrites PHP Метод

computeQueryRewrites() приватный Метод

Compute weigthed rewrites for the query.
private computeQueryRewrites ( Smile\ElasticsuiteCore\Api\Search\Request\ContainerConfigurationInterface $containerConfig, string $queryText ) : array
$containerConfig Smile\ElasticsuiteCore\Api\Search\Request\ContainerConfigurationInterface Search request container config.
$queryText string Fulltext query.
Результат array
    private function computeQueryRewrites(ContainerConfigurationInterface $containerConfig, $queryText)
    {
        $config = $this->getConfig($containerConfig);
        $storeId = $containerConfig->getStoreId();
        $rewrites = [];
        if ($config->isSynonymSearchEnabled()) {
            $synonymRewrites = $this->getSynonymRewrites($storeId, $queryText, ThesaurusInterface::TYPE_SYNONYM);
            $rewrites = $this->getWeightedRewrites($synonymRewrites, $config->getSynonymWeightDivider());
        }
        if ($config->isExpansionSearchEnabled()) {
            $synonymRewrites = array_merge([$queryText => 1], $rewrites);
            foreach ($synonymRewrites as $currentQueryText => $currentWeight) {
                $expansions = $this->getSynonymRewrites($storeId, $currentQueryText, ThesaurusInterface::TYPE_EXPANSION);
                $expansionRewrites = $this->getWeightedRewrites($expansions, $config->getExpansionWeightDivider(), $currentWeight);
                $rewrites = array_merge($rewrites, $expansionRewrites);
            }
        }
        return $rewrites;
    }