$criteria->
addQuery( new ScoreQuery( new ContainsFilter('product.searchKeywords.keyword',
$pattern->
getOriginal()->
getTerm()),
$pattern->
getOriginal()->
getScore(),
'product.searchKeywords.ranking'
) );
if ($pattern->
getBooleanClause() !== SearchPattern::BOOLEAN_CLAUSE_AND
) { $criteria->
addFilter(new AndFilter([ new EqualsAnyFilter('product.searchKeywords.keyword',
array_values($pattern->
getAllTerms())),
new EqualsFilter('product.searchKeywords.languageId',
$context->
getContext()->
getLanguageId()),
]));
return;
} foreach ($pattern->
getTokenTerms() as $terms) { $criteria->
addFilter(new AndFilter([ new EqualsFilter('product.searchKeywords.languageId',
$context->
getContext()->
getLanguageId()),
new EqualsAnyFilter('product.searchKeywords.keyword',
$terms),
]));
}