Удаление данных из ElasticSearch

Я новичок в ElasticSearch. Я пытаюсь выяснить, как удалить данные из ElasticSearch. Я удалил свои индексы. Однако это, по-видимому, фактически не снимает данные. Другой материал, который я видел, указывает на функцию " Удалить по запросу". Тем не менее, я даже не уверен, на что запрос. Я знаю свои индексы. По сути, я хотел бы выяснить, как сделать

DELETE FROM [Index]

Из PostMan в Chrome. Однако мне не повезло. Кажется, что независимо от того, что я делаю, данные зависают. До сих пор я успешно удалял индексы с помощью DELETE HTTP Verb в PostMan и используя URL-адрес:

   http://localhost:9200/[indexName]

Однако это, по-видимому, фактически не удаляет данные (aka docs).

Ответ 1

Вы можете удалить cURL или визуально, используя один из многих инструментов, которые энтузиасты с открытым исходным кодом создали для Elasticsearch.

Использование cURL

curl -XDELETE localhost:9200/index/type/documentID

например

curl -XDELETE localhost:9200/shop/product/1

Затем вы получите ответ о том, было ли это успешным или нет. Вы также можете удалить весь индекс или типы с индексом, вы можете удалить его, оставив идентификатор документа так же -

curl -XDELETE localhost:9200/shop/product

Если вы хотите удалить индекс -

curl -XDELETE localhost:9200/shop

Если вы хотите удалить более одного индекса, который следует за определенным соглашением об именах (обратите внимание на *, подстановочный знак), -

curl -XDELETE localhost:9200/.mar* 

зрительно

Существуют различные инструменты, как указано выше, я не буду перечислять их здесь, но я свяжу вас с тем, который позволит вам сразу начать работу, находясь здесь. Этот инструмент называется KOPF, чтобы подключиться к вашему хосту, нажмите на логотип в верхнем левом углу и введите URL своего кластера.

После подключения вы сможете управлять всем кластером, удалять, оптимизировать и настраивать свой кластер.

Ответ 2

Если вам когда-нибудь понадобится удалить все индексы, это может пригодиться:

curl -X DELETE 'http://localhost:9200/_all'

Powershell:

Invoke-WebRequest -method DELETE http://localhost:9200/_all

Ответ 3

В документации (или The Definitive Guide) говорится, что вы также можете использовать следующий запрос для удаления всех индексов:

curl -XDELETE 'http://localhost:9200/*'

И там важное примечание:

Для некоторых возможность удаления всех ваших данных с помощью одной команды - очень пугающая перспектива. Если вы хотите исключить возможность случайного массового удаления, вы можете установить в true в elasticsearch.yml:

action.destructive_requires_name: true

Ответ 4

Вы должны отправить запрос DELETE

http://[your_host]:9200/[your_index_name_here]

Вы также можете удалить один документ:

http://[your_host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]

Я предлагаю вам использовать эластихамер.

После удаления вы можете искать, если индекс все еще существует со следующим URL-адресом: http://[your_host]:9200/_stats/

Удачи!

Ответ 5

Удаление индекса приведет к удалению отображения и введите его. вы можете удалить все строки по следующему запросу

curl -XDELETE 'localhost:9200/twitter/tweet/_query?pretty' -d'
{
   "query": { 
      "match_all": 
   }
}'

Однако для вышеуказанного запроса вам нужно установить плагин для удаления по запросу, так как из Elasticsearch 2.0.0-beta1 удаление по запросу было удалено из основного api

Install delete-by-query plugin

sudo bin/plugin install delete-by-query

Для большего

http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/

Ответ 6

#list all index:       curl -XGET http://localhost:9200/_cat/indices?v 

enter image description here

#delete index:         curl -XDELETE 'localhost:9200/index_name'
#delete all indices:   curl -XDELETE 'localhost:9200/_all'
#delete document   :   curl -XDELETE 'localhost:9200/index_name/type_name/document_id'

Установите кибану. У Kibana есть более интеллектуальный инструмент, который помогает легко создавать запрос.

enter image description here

Ответ 7

Вы можете удалить индекс в python следующим образом

from elasticsearch import Elasticsearch

es = Elasticsearch([{'host':'localhost', 'port':'9200'}])

es.index(index='grades',doc_type='ist_samester',id=1,body={
    "Name":"Programming Fundamentals",
    "Grade":"A"
})

es.indices.delete(index='grades')

Ответ 8

Для массового удаления по запросу вы можете использовать специальный метод delete by query:

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

В истории, что API был удален, а затем снова введен повторно

Кто интересен, он имеет долгую историю.

  1. В первой версии этого ответа я ссылаюсь на документацию elasticsearch версии 1.6. В нем эта функциональность была отмечена как устаревшая, но работает хорошо.
  2. В версии elasticsearch 2.0 он был перемещен в отдельный плагин. И даже причины, почему это стало плагином объяснено.
  3. И он снова появился в основном API в версии 5.0 !

Ответ 9

Здесь есть много хороших ответов, но есть еще кое-что, что я хотел бы добавить:

  • Если вы работаете в службе AWS ElasticSearch, вы не можете отбрасывать/удалять индексы. Вместо удаления индексов вы должны переиндексировать их.

Ответ 11

Я хотел удалить индекс logstash и много раз искал различные инструменты, такие как завиток. Но нашел решение в конце. Войдите в Кибану. Перейдите на вкладку "Инструменты разработчика" и введите DELETE/logstash-* в поле запроса и нажмите зеленую кнопку со стрелкой. если вы получите "подтвержденный": true в ответ, что означает, что данные были очищены.

Ответ 12

Вы можете удалить либо весь индекс, либо тип документа, либо данные о перкулярном идентификаторе. это три способа:

  1. curl -XDELETE localhost: 9200/index_name

  2. curl -XDELETE localhost: 9200/index_name/doc-type

  3. curl -XDELETE localhost: 9200/index_name/doc-type/documentId

и если вы хотите удалить весь индекс, перейдите на подстановочный знак.

Ответ 13

Чтобы перечислить индексы curl -L localhost:9200/_cat/indices

9200 порт по умолчанию [изменить порт при использовании другого порта]

Скорее всего, вы найдете все индексы, начинающиеся с формата logstash-yyyy-mm-dd (logstash- *)

Вы можете увидеть все индексы и использовать

Чтобы удалить индексы и данные, выполните следующую команду.

curl -XDELETE localhost:9200/index_name (который удалит данные и индексы).

Ответ 14

Вы также можете удалить индекс с помощью действия DELETE в "elasticsearch head" (плагин Chrome). Добавьте его в свой хром и подключите его к хосту. Там вы найдете все свои индексы, и если вы нажмете кнопку "Действия" под индексом, который хотите удалить, в раскрывающемся списке вы найдете опцию DELETE. нажмите на него и введите DELETE во всплывающем окне. Ваш индекс будет удален. Расширение "Elasticsearch head" - это простой способ просмотра и управления вашими индексами и данными.

Ответ 15

curl -X DELETE 'https://localhost:9200/_all'

Измените http на https, если вы используете SSL-сертификат в своем приложении

Ответ 16

Вы можете удалить индекс с помощью консоли Kibana:

Console Icon

Чтобы получить весь индекс:

GET /_cat/indices?v

Чтобы удалить определенный индекс:

DELETE /INDEX_NAME_TO_DELETE

Ответ 17

Вы можете использовать chrome extensionasticsearch-head для удаления индекса

Ответ 18

Если мы не сможем подключиться к ES после обновления ES, есть ли другие варианты, чтобы очистить все индексы?