Я знаю, что можно удалить все документы определенного типа через deleteByQuery.
Пример:
curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}'
Но у меня нет термина и я просто хочу удалить все документы этого типа, независимо от того, какой термин. Какова лучшая практика для достижения этой цели? Пустой термин не работает.
elasticsearch
Майкл Лейс
источник
источник
источник
-H 'Content-Type: application/json'
В ElasticSearch 5.x API delete_by_query существует по умолчанию
POST: http://localhost:9200/index/type/_delete_by_query
источник
Комментарий Торстена Энгельбрехта в ответе Джона Петронеса расширен:
(Я не хотел редактировать ответ Джона, так как он получил отклики и настроен как ответ, и я мог внести ошибку)
источник
Вы можете удалить документы из типа с помощью следующего запроса:
Я проверил этот запрос в Kibana и Elastic 5.5.2
источник
Начиная с Elasticsearch 2.x удаление больше не разрешено, поскольку документы остаются в индексе, что приводит к повреждению индекса.
источник
news1, news2 and so on
и устанавливать псевдоним для текущего активного индекса наnews
пути. Конечно, название индекса только в качестве примера. Здесь вы можете найти полный пример [index alias] ( astic.co/guide/en/elasticsearch/reference/current/… ) и статью, в которой объясняется тематическое исследование.Приведенные выше ответы больше не работают с ES 6.2.2 из-за строгой проверки типа содержимого для запросов REST Elasticsearch . Команда,
curl
которую я использовал в итоге, такова:источник
В консоли Kibana :
источник
У вас есть эти альтернативы:
1) Удалить весь индекс:
пример:
Более подробную информацию вы можете найти здесь - https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html
2) Удалить по запросу к тем, которые соответствуют:
* Здесь mentorz - это индексное имя, а users - это тип
источник
Начиная с ES 1.5.3, API-интерфейс удаления по запросу устарел и полностью удаляется начиная с ES 2.0.
Вместо API теперь используется плагин Delete By Query .
Чтобы использовать плагин Delete By Query, вы должны установить плагин на все узлы кластера:
Использование плагина такое же, как и у старого API. Вам не нужно ничего менять в своих запросах - этот плагин просто заставит их работать.
* Для получения полной информации о ПОЧЕМУ API был удален, вы можете прочитать больше здесь .
источник
(Репутация недостаточно высока, чтобы комментировать) Вторая часть ответа Джона Петроне работает - запрос не требуется. Он удалит тип и все документы, содержащиеся в этом типе, но его можно просто создать заново, когда вы индексируете новый документ для этого типа.
Просто для уточнения:
$ curl -XDELETE 'http://localhost:9200/twitter/tweet'
Примечание: это действительно удалить сопоставление! Но, как уже упоминалось ранее, его можно легко переназначить, создав новый документ.
источник
Я использую Elassearch 7.5 и когда я использую
который бросит ниже ошибки.
Мне также нужно добавить дополнительный
-H 'Content-Type: application/json'
заголовок в запрос, чтобы он работал.источник
Просто чтобы добавить пару центов к этому.
Упомянутый вверху «delete_by_query» все еще доступен как плагин вasticsearch 2.x.
Хотя в последней следующей версии 5.x он будет заменен на «удалить по запросу API»
источник
Elasticsearch 2.3 опция
вasticsearch.yml сделать поездку
источник
Если вы хотите удалить документ по дате. Вы можете использовать консоль kibana (v.6.1.2)
источник