Вам нужно изменить отображение, чтобы иметь возможность сделать это.
Если вы не указали отображение с определенными анализаторами при создании индекса ,asticsearch будет использовать отображение и анализатор по умолчанию.
При отображении по умолчанию каждое текстовое поле будет отображаться как text
и keyword
, поэтому вы сможете выполнять полнотекстовый поиск (совпадать с частью строки) и поиск по ключевым словам (совпадать с целой строкой), нобудет использовать анализатор standard
.
С анализатором standard
ваш пример Сальдо по банкам станет следующим списком токенов: [ Balances , от , bank ], эти элементы добавляются в инвертированный индекс, и эластичный поиск может найти документы при поиске любого из них.
Когда выищите просто Баланс , этот термин не существует в инвертированном индексе, аasticsearch ничего не возвращает.
Чтобы иметь возможность вернуть оба значения Баланс и Балансы тебе нужно чанПолучите ваше отображение и используйте analyzer
для английского языка, этот анализатор сократит ваши условия до их основы и сопоставит Баланс , Балансы , а также Балансировка , Сбалансированный , Балансировщик и т. Д.
Посмотрите на эту часть документации , чтобы увидеть, как работает процесс анализа.
И, конечно, вы также можете искать Баланс *, и он будет возвращать Баланс и Баланс , но это другой запрос.