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);
}