ElasticSearch — как запросить запрос из метаданных динамического поля?

ElasticSearch — как запросить запрос из метаданных динамического поля?

Поле метаданных является динамическим и может иметь внутренние поля «да» или «нет».

Как я могу вернуть запрос, даже если в некоторых из них поле «удалено» не определено?

Спасибо за прослушивание.

{
    "query": {
        "nested": {
            "path": "metadata",
            "query": {
                "bool": {
                    "should":[
                        {
                            "match":{
                                "metadata.deleted": true
                            }
                        }
                    ]
                }
            }
        },
        "bool": {
            "must": {
                "term": {
                    "on_behalf_of": "b71457f731d8a6f"
                }
            }
        }
    }
}

{
    "error": {
        "root_cause": [
            {
                "type": "parsing_exception",
                "reason": "[nested] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
                "line": 1,
                "col": 116
            }
        ],
        "type": "parsing_exception",
        "reason": "[nested] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
        "line": 1,
        "col": 116
    },
    "status": 400
}
0
0
236
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш запрос имеет неверный формат. Здесь вы используете два запроса nested и bool. Оба этих запроса должны быть заключены в must, should или filter логического запроса. Предполагая, что оба условия необходимы для совпадения, оба этих запроса должны быть заключены в предложение must или filter запроса bool, как показано ниже:

{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "metadata",
            "query": {
              "bool": {
                "should": [
                  {
                    "match": {
                      "metadata.deleted": true
                    }
                  }
                ]
              }
            }
          }
        },
        {
          "must": {
            "term": {
              "on_behalf_of": "b71457f731d8a6f"
            }
          }
        }
      ]
    }
  }
}

Другие вопросы по теме