ElasticSearch Delete by Query не работает - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь удалить документы из моего индекса, чей идентификатор больше 1500001. Я скопировал код из документации elasti c, но он не дает мне никаких результатов. Код:

POST /us_data_master/_delete_by_query

{
  "query": {
    "range" : {
        "id" : {
           "gte" : 1500001
        }
    }
  }
}

Ответ, который я получаю:

{
   "error" : {
        "root_cause" : [
          {
            "type" : "action_request_validation_exception",
            "reason" : "Validation Failed: 1: query is missing;"
          }
        ],
        "type" : "action_request_validation_exception",
        "reason" : "Validation Failed: 1: query is missing;"
      },
      "status" : 400
    }

Я не понимаю, в чем проблема. Ждем помощи

Спасибо

Редактировать 1:

Отображение в соответствии с запросом

 {


"mapping": {
    "_doc": {
      "properties": {
        "@timestamp": {
          "type": "date"
        },
        "@version": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "address": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "city_code": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "contact_no": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "date_added": {
          "type": "date"
        },
        "date_updated": {
          "type": "date"
        },
        "featured": {
          "type": "long"
        },
        "id": {
          "type": "long"
        },
        "location_id": {
          "type": "long"
        },
        "main_cate": {
          "type": "long"
        },
        "name": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "slug": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "source": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "state_code": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "status": {
          "type": "long"
        },
        "zip_code": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
  }
}

1 Ответ

1 голос
/ 21 марта 2020

Полагаю, вы используете Кибану. После POST есть дополнительная пустая строка и ваш запрос, как показано ниже:

POST /us_data_master/_delete_by_query
                                              <------ Remove this space
{
  "query": {
    "range" : {
        "id" : {
           "gte" : 1500001
        }
    }
  }
}

Ниже показано, как это должно быть:

POST /us_data_master/_delete_by_query
{
  "query": {
    "range" : {
        "id" : {
           "gte" : 1500001
        }
    }
  }
}

Это должно решить проблему.

...