В моей поисковой системе пользователи могут выбирать поиск с учетом регистра или нет.Если они захотят, запрос будет искать по полям, в которых используется специальный анализатор с учетом регистра .Это мои настройки:
GET /андидаты / _settings
{
"candidates": {
"settings": {
"index": {
"number_of_shards": "5",
"provided_name": "candidates",
"creation_date": "1528210812046",
"analysis": {
"analyzer": {
"case_sensitive": {
"filter": [
"stop",
"porter_stem"
],
"type": "custom",
"tokenizer": "standard"
}
}
},
...
}
}
}
}
Итак, я создал собственный анализатор с именем case_sensitive
, взятый из этого ответа .Я пытаюсь определить мой mapping
следующим образом:
PUT /андидаты / _mapping /андидат
{
"properties": {
"first_name": {
"type": "text",
"fields": {
"case": {
"type": "text",
"analyzer": "case_sensitive"
}
}
}
}
}
Итак, при запросе для чувствительного к региструсоответствие, я могу сделать:
simple_query_string: {
query: **text to search**,
fields: [
"first_name.case"
]
}
Я даже не дошел до последнего шага, так как я получаю ошибку, описанную в заголовке, когда пытаюсь определить mapping
.Полная трассировка стека приведена на изображении ниже:

Сначала я думал, что моя ошибка похожа на эту , но ядумаю, что проблема связана только с использованием keyword
токенизатора, а не standard
one