/**
* @deprecated tag:v6.6.0 - Will become abstract, implementation should implement their own `buildTermQuery`
*/
public function buildTermQuery(Context
$context, Criteria
$criteria): BoolQuery
{ Feature::
triggerDeprecationOrThrow( 'ES_MULTILINGUAL_INDEX',
'Will become abstract, implementation should implement their own `buildTermQuery`'
);
$bool =
new BoolQuery();
$term =
(string) $criteria->
getTerm();
$queries =
[ new MatchQuery('fullTextBoosted',
$term,
['boost' => 10
]), // boosted word matches
new MatchQuery('fullText',
$term,
['boost' => 5
]), // whole word matches
new MatchQuery('fullText',
$term,
['fuzziness' => 'auto', 'boost' => 3
]), // word matches not exactly =>
new MatchPhrasePrefixQuery('fullText',
$term,
['boost' => 1, 'slop' => 5
]), // one of the words begins with: "Spachtel" => "Spachtelmasse"
new WildcardQuery('fullText', '*' .
mb_strtolower($term) . '*'
), // part of a word matches: "masse" => "Spachtelmasse"
new MatchQuery('fullText.ngram',
$term),
];