У меня есть каталог продуктов, который я индексирую в ElasticSearch с помощью клиента Elastica.
При реализации поиска я добавлял *
после введенных условий поиска, чтобы при вводе whis
или whisk
он уже начал видеть результаты поиска для whisky
.
Но я хочу показать результаты для poster
и при вводе posters
.
Я смог добиться результата от множественного числа к единственному, используя фильтр snowball
. Но чтобы это сработало, мне нужно удалить *
.
Это плохо, потому что результаты не отображаются, пока не будет введено полное слово.
Любые идеи, как я могу это сделать? Код моего анализатора: (взято из здесь)
'analysis' => array(
'analyzer' => array(
'indexAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'whitespace',
'filter' => array('lowercase', 'mySnowball')
),
'searchAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'whitespace',
'filter' => array('lowercase', 'mySnowball')
)
),
'filter' => array(
'mySnowball' => array(
'type' => 'snowball',
'language' => 'English'
)
)
)