asticsearch node.js удалить все документы индекса - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь удалить все документы из индекса, не удаляя сам индекс через node.js API.

Я пытаюсь с помощью deleteByQuery, но как я могу указать все документы внутри индекса?

Ответы [ 2 ]

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

Вы можете просто использовать REST API, чтобы удалить все документы из вашего индекса, для этого вам не нужно использовать node.js API, и вы можете напрямую нажимать ниже API. Дополнительная информация об удалении всех примеров документов и различных опций

Удаление всех документов из индекса

POST <your-index-name>/_delete_by_query
{
  "query": {
    "match_all": {} --> this matches all docs in index, hence deletes all of them.
  }
}

Формат скручивания для POST-запроса, поэтому его сложно использовать с rest-client

curl -X POST "localhost:9200/<your-index-name>/_delete_by_query" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match_all": {}
  }
}
'
0 голосов
/ 06 апреля 2020

Спасибо @opster .... Я искал чистое node.js решение и наконец нашел его. Я хочу опубликовать его, потому что я никогда не видел этот фрагмент кода в Интернете.

_

На клиенте, использующем ax ios:

     axios({
        method: 'post',
        url: '/empty_index',
     }).then();

_

На сервере мой express маршрут

     app.post( '/empty_index', function( req, res, next ) {

        const client = new Client({
            node: 'http://localhost:'+process.env.ELASTICSEARCH_PORT
        });

        client.deleteByQuery({
            index: <your-index-name>,            
            body: {
                query: {
                    match_all: {}
                }
            }
        }, function (error, response) {
            console.log(response);
        });
        return res.status( 200 ).send();

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