Вам нужно выбрать standard
анализатор вместо stop
анализатор разбивает текст на термины всякий раз, когда встречает символ, который не является буквой, и удаляет стоп-слова, такие как «the».В вашем случае «abc, 123» приводит к выводу токена abc при использовании анализатора остановки.Используя стандартный анализатор, он возвращает abc и 123, как показано ниже
POST _analyze
{
"analyzer": "standard",
"text": "abc, 123"
}
Вывод:
{
"tokens": [
{
"token": "abc",
"start_offset": 0,
"end_offset": 3,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "123",
"start_offset": 5,
"end_offset": 8,
"type": "<NUM>",
"position": 1
}
]
}
EDIT1 Использование простого токенайзера с разделением по шаблонам
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "simple_pattern_split",
"pattern": ","
}
}
}
}
}
POST my_index/_analyze
{
"analyzer": "my_analyzer",
"text": "abc,123"
}
Вывод:
{
"tokens": [
{
"token": "abc",
"start_offset": 0,
"end_offset": 3,
"type": "word",
"position": 0
},
{
"token": "123",
"start_offset": 4,
"end_offset": 7,
"type": "word",
"position": 1
}
]
}