Eu sei que é possível excluir todos os documentos de um determinado tipo via deleteByQuery.
Exemplo:
curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}'
Mas não tenho termo e simplesmente desejo excluir todos os documentos desse tipo, independentemente do termo. Qual é a melhor prática para conseguir isso? O termo vazio não funciona.
elasticsearch
Michael Leiss
fonte
fonte
fonte
-H 'Content-Type: application/json'
No ElasticSearch 5.x, a API delete_by_query existe por padrão
POST: http://localhost:9200/index/type/_delete_by_query
fonte
O comentário de Torsten Engelbrecht na resposta de John Petrones foi expandido:
(Eu não queria editar a resposta de John, pois ela recebeu votos positivos e está definida como resposta, e talvez eu tenha introduzido um erro)
fonte
Você pode excluir documentos do tipo com a seguinte consulta:
Eu testei esta consulta no Kibana e Elastic 5.5.2
fonte
A partir da exclusão do Elasticsearch 2.x não é mais permitida, pois os documentos permanecem no índice causando corrupção no índice.
fonte
news1, news2 and so on
e configurar um alias para o índice ativo atual nonews
caminho. Obviamente, o nome do índice é apenas um exemplo. Aqui você pode encontrar um exemplo completo de [alias de índice] ( elastic.co/guide/en/elasticsearch/reference/current/… ) e artigo que explica um estudo de caso.As respostas acima não funcionam mais com o ES 6.2.2 devido à verificação rigorosa do tipo de conteúdo para solicitações REST do Elasticsearch . O
curl
comando que acabei usando é o seguinte:fonte
No Kibana Console:
fonte
Você tem estas alternativas:
1) Exclua um índice inteiro:
exemplo:
Para mais detalhes, você pode encontrar aqui - https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html
2) Exclua por consulta as que correspondem:
* Aqui mentorz é um nome de índice e usuários é um tipo
fonte
A partir do ES 1.5.3, a API de exclusão por consulta foi descontinuada e foi completamente removida desde o ES 2.0
Em vez da API, a opção Excluir por consulta agora é um plug-in .
Para usar o plug-in Excluir por consulta, você deve instalar o plug-in em todos os nós do cluster:
O uso do plug-in é o mesmo da API antiga. Você não precisa alterar nada em suas consultas - este plugin apenas as faz funcionar.
* Para obter informações completas sobre por que a API foi removida, você pode ler mais aqui .
fonte
(Reputação insuficiente para comentar) A segunda parte da resposta de John Petrone funciona - nenhuma consulta é necessária. Ele excluirá o tipo e todos os documentos contidos nesse tipo, mas isso poderá ser recriado sempre que você indexar um novo documento para esse tipo.
Só para esclarecer:
$ curl -XDELETE 'http://localhost:9200/twitter/tweet'
Nota: este não excluir o mapeamento! Mas, como mencionado anteriormente, ele pode ser facilmente mapeado novamente, criando um novo documento.
fonte
Estou usando elasticsearch 7.5 e quando uso
que jogará abaixo do erro.
Também preciso adicionar um
-H 'Content-Type: application/json'
cabeçalho extra na solicitação para que funcione.fonte
Apenas para adicionar alguns centavos a isso.
O "delete_by_query" mencionado na parte superior ainda está disponível como um plug-in no elasticsearch 2.x.
Embora na versão 5.x mais recente seja substituída por "delete by query api"
fonte
Elasticsearch 2.3 a opção
em elasticsearch.yml faça a viagem
fonte
Se você deseja excluir o documento de acordo com uma data. Você pode usar o console kibana (v.6.1.2)
fonte