При использовании типа поля completion
обычно вам не нужно использовать какие-либо ребра-нграммы, это то, что поле completion
делает внутренне.
Однако, вы правы, анализатор simple
, который используется по умолчанию для типов completion
, отбрасывает все числа, т. Е. Разделяет входные данные, когда встречает символ, который не является буквой. Таким образом, это будет работать, только если ваши данные имеют только [a-zA-Z], что не относится к вашим случаям.
Поскольку ваш вход содержит только одно имя пользователя токена, вы можете использовать анализатор standard
. Если бы было несколько токенов, я бы не рекомендовал вам использовать их из-за фильтра токенов стоп-слов, но, поскольку это не тот случай, его можно использовать безопасно.
Если вам когда-либо придется использовать завершение на входе с несколькими токенами, обычно лучше всего создать анализатор custom
с токенайзером whitespace
или classic
и фильтром токенов lowercase
, как показано ниже:
"suggest_analyzer": {
"type": "custom",
"tokenizer": "classic",
"filter": [
"lowercase"
]
},
Ваш пробег может отличаться, но приведенный выше анализатор является хорошей основой, на которой вы можете построить.