Запрос на удаление записи по ошибке в Elasticsearch - PullRequest
1 голос
/ 05 июля 2019

Я изучаю Elasticsearch 5, и я не нашел способа удалить данные, которые были вставлены в него.

Когда я запрашиваю список записей ,asticsearch возвращает это:

curl -X POST \
  http://localhost:9201/usersystem/_search \
  -d '{
    "query": {
        "terms": { "_id": [951] }
    }
}'

Return:

{
   "took":1,
   "timed_out":false,
   "_shards":{
      "total":5,
      "successful":5,
      "skipped":0,
      "failed":0
   },
   "hits":{
      "total":1,
      "max_score":1.0,
      "hits":[
         {
            "_index":"usersystem",
            "_type":"usersystem",
            "_id":"951",
            "_score":1.0,
            "_source":{
               "id":951,
               "name":"User Name",
               "email":"user.name@host.com",
               "phone":"47-1234-9876",
               "documentCode":"9876543-8",
               "documentType":"RR",
               "gender":"MALE",
               "createdOn":"2019-07-04T20:11:47.314Z",
               "updateOn":null,
               "active":false,
               "userId":952
            }
         }
      ]
   }

}

Читая некоторые примеры, я сделал следующий запрос DELETE, который возвращает ошибку:

Запрос:

curl -X DELETE \
  http://localhost:9201/usersystem/_query \
  -d '{
    "query": {
        "terms": { "_id": [951] }
    }
}'

Ошибка: No handler found for uri [/usersystem/_query] and method [DELETE]

Как мне сделать запрос на удаление, чтобы удалить запись по _id или id?

Ответы [ 3 ]

1 голос
/ 06 июля 2019

сделайте это примерно так.

curl -X DELETE http://localhost:9201/usersystem/_doc/951
0 голосов
/ 09 июля 2019

Я нашел в документации ElasticSearch о _delete_by_query. Это требование, которое работало для меня:

curl -X POST \
  http://localhost:9201/usersystem/_delete_by_query \
  -d '{
    "query": {
        "terms": { "_id": [951] }
    }
}'
0 голосов
/ 07 июля 2019

Если ваш поисковый запрос возвращает ответ ниже,

[
  {
    "_index": "usersystem",
    "_type": "usersystem",
    "_id": "951",
    "_score": 1,
    "_source": {
      ....
  }
]

, то из ответа хита вашего поискового запроса мы узнали, что у вас есть index с именем usersystem с type пользовательской системой .Таким образом, чтобы удалить любой документ по id , вы можете сделать это следующим образом -

DELETE /usersystem/usersystem/951

ИЛИ

curl -X DELETE "localhost:9201/usersystem/usersystem/951"

Смотрите больше: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete.html

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