foreach ($combines as $token) { $tokens[] =
$token;
} /** @var list<string> $tokens */
$tokens =
array_keys(array_flip($tokens));
$pattern =
new SearchPattern(new SearchTerm($word));
$pattern->
setBooleanClause($this->
getConfigBooleanClause($context));
$pattern->
setTokenTerms($matches);
$scoring =
$this->
score($tokens, ArrayNormalizer::
flatten($matches));
// only use the 8 best matches, otherwise the query might explode
$scoring = \
array_slice($scoring, 0, self::RELEVANT_KEYWORD_COUNT, true
);
foreach ($scoring as $keyword =>
$score) { $this->logger->
info('Search match: ' .
$keyword . ' with score ' .
(float) $score);
} foreach ($scoring as $keyword =>
$score) { $pattern->
addTerm(new SearchTerm((string) $keyword,
$score));
}