Smile\ElasticsuiteCore\Search\Request\Query\Fulltext\QueryBuilder::getWeightedSearchQuery PHP Метод

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

Provides a weighted search query (multi match) using mapping field configuration.
private getWeightedSearchQuery ( Smile\ElasticsuiteCore\Api\Search\Request\ContainerConfigurationInterface $containerConfig, string $queryText ) : Smile\ElasticsuiteCore\Search\Request\QueryInterface
$containerConfig Smile\ElasticsuiteCore\Api\Search\Request\ContainerConfigurationInterface Search request container configuration.
$queryText string The text query.
Результат Smile\ElasticsuiteCore\Search\Request\QueryInterface
    private function getWeightedSearchQuery(ContainerConfigurationInterface $containerConfig, $queryText)
    {
        $relevanceConfig = $containerConfig->getRelevanceConfig();
        $phraseMatchBoost = $relevanceConfig->getPhraseMatchBoost();
        $defaultSearchField = MappingInterface::DEFAULT_SEARCH_FIELD;
        $searchableCallback = [$this, 'isSearchableFieldCallback'];
        $standardAnalyzer = FieldInterface::ANALYZER_STANDARD;
        $phraseAnalyzer = FieldInterface::ANALYZER_WHITESPACE;
        if (is_string($queryText) && str_word_count($queryText) > 1) {
            $phraseAnalyzer = FieldInterface::ANALYZER_SHINGLE;
        }
        $searchFields = array_merge($this->getWeightedFields($containerConfig, $standardAnalyzer, $searchableCallback, $defaultSearchField), $this->getWeightedFields($containerConfig, $phraseAnalyzer, $searchableCallback, $defaultSearchField, $phraseMatchBoost));
        $queryParams = ['fields' => $searchFields, 'queryText' => $queryText, 'minimumShouldMatch' => 1, 'cutoffFrequency' => $relevanceConfig->getCutOffFrequency(), 'tieBreaker' => $relevanceConfig->getTieBreaker()];
        return $this->queryFactory->create(QueryInterface::TYPE_MULTIMATCH, $queryParams);
    }