Определение сопоставления для [fields] имеет неподдерживаемые параметры: [analyzer: case_sensitive] - PullRequest
0 голосов
/ 08 июня 2018

В моей поисковой системе пользователи могут выбирать поиск с учетом регистра или нет.Если они захотят, запрос будет искать по полям, в которых используется специальный анализатор с учетом регистра .Это мои настройки:

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.Полная трассировка стека приведена на изображении ниже:

enter image description here

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

1 Ответ

0 голосов
/ 08 июня 2018

В этом определении отображения я фактически пытался настроить отображение для нескольких различных полей, а не только для first_name.Одно из этих полей имеет тип long, и это определение сопоставления, которое выдает ошибку.Когда я удаляю это из определения сопоставления, оно работает как положено.Однако я не уверен, почему это не удается для этого типа данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...