Это потому, что stop analyzer
является просто расширением Simple Analyzer , в котором используется Tokenizer в нижнем регистре , который просто разбивает термины на токены, если встречает символ, который не является letter
(конечно, также с учетом всех условий).
Итак, если у вас есть что-то вроде news24
, то, что оно делает, разбивает его на news
, когда встречается 2
.
Это поведение по умолчанию stop analyzer
. Если вы намерены использовать стоп-слова и все еще хотите сохранять цифры в картинке, вам потребуется создать собственный анализатор, как показано ниже:
Отображение:
POST sometestindex
{
"settings":{
"analysis":{
"analyzer":{
"my_english_analyzer":{
"type":"standard",
"stopwords":"_english_"
}
}
}
}
}
Что он делает, он использует Standard Analyzer
, который внутренне использует Стандартный токенизатор , а также игнорирует стоп-слова.
Анализ запроса для проверки
POST sometestindex/_analyze
{
"analyzer": "my_english_analyzer",
"text": "the name of the channel is news24"
}
Результат запроса
{
"tokens": [
{
"token": "name",
"start_offset": 4,
"end_offset": 8,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "channel",
"start_offset": 16,
"end_offset": 23,
"type": "<ALPHANUM>",
"position": 4
},
{
"token": "news24",
"start_offset": 27,
"end_offset": 33,
"type": "<ALPHANUM>",
"position": 6
}
]
}
Вы можете видеть в вышеприведенных токенах, что news24
сохраняется как токен.
Надеюсь, это поможет!