по умолчанию, строковое поле будет иметь токенайзер standard
, который будет выдавать один токен "FRUIT12" для входа "FRUIT12".
Вам необходимо использовать word_delimiter token filter в вашем анализаторе поля, чтобы позволить поведение, которое вы ожидаете:
GET _analyze
{
"text": "FRUIT12",
"tokenizer": "standard"
}
дает
{
"tokens": [
{
"token": "FRUIT12",
"start_offset": 0,
"end_offset": 7,
"type": "<ALPHANUM>",
"position": 0
}
]
}
----------- и
GET _analyze
{
"text": "FRUIT12",
"tokenizer": "standard",
"filters": ["word_delimiter"]
}
дает
{
"tokens": [
{
"token": "FRUIT",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "12",
"start_offset": 5,
"end_offset": 7,
"type": "<ALPHANUM>",
"position": 1
}
]
}
Если вы добавите фильтр токенов word_delimiter в свое поле, для любого поискового запроса в этом поле также будет включен фильтр токенов word_delimiter (если вы не переопределите его с параметром search_analyzer в отображении)
так что "FRUIT12"
односложный запрос будет «переведен» в ["FRUIT", "12"]
многотерминальный запрос.