Ошибка Elasticsearch "Не удалось найти вложенный объект по пути" - PullRequest
0 голосов
/ 06 апреля 2020

Я знаю, что этот вопрос задавался несколько раз, но ни один из существующих вопросов или ответов не помог мне.

Я получаю следующую ошибку при запросе Elasticsearch:

[ nested] не удалось найти вложенный объект по пути [вылеты]

Запрос, который я выполняю, приведен ниже:

{
    "explain":true,
    "from":0,
    "query":{
        "nested":{
            "path":"departures",
            "query":{
                "term":{
                    "departures.yearMonth":{
                        "value":202007
                    }
                }
            }
        }
    },
    "size":20
}

И мое сопоставление выглядит следующим образом:

{
    "tours":{
        "mappings":{
            "properties":{
                "departures":{
                    "type":"nested",
                    "properties":{
                        "guaranteed":{
                            "type":"boolean"
                        },
                        "spacesRemaining":{
                            "type":"long"
                        },
                        "startDate":{
                            "type":"date"
                        },
                        "yearMonth":{
                            "type":"long"
                        }
                    }
                }
            }
        }
    }
}

И, наконец, снимок экрана, сделанный из Kibana, показывающий, что в моем индексе есть действительная запись. enter image description here

Любые идеи, почему этот запрос будет терпеть неудачу, как этот?

1 Ответ

1 голос
/ 07 апреля 2020

Попробуйте установить для флага ignore_unmapped значение true в вашем запросе

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html

ignore_unmapped (Необязательно, логическое) Указывает, следует ли игнорировать не отображается путь и не возвращать никаких документов вместо ошибки. По умолчанию установлено значение false.

Если значение false, Elasticsearch возвращает ошибку, если путь является несопоставленным полем.

Этот параметр можно использовать для запроса нескольких индексов, которые могут не содержать путь к полю.

...