Как удалить типы документов в elasticsearch? - программирование
Подтвердить что ты не робот

Как удалить типы документов в elasticsearch?

Я создаю индекс "myindex" с указанным типом документа "mytype" . Я могу удалить индекс, но похоже, что "mytype" все еще существует, не привязанный к индексу.

Как мне избавиться от "mytype" ?

4b9b3361

Ответ 1

Если вы действительно удалили индекс, сопоставление в этом индексе больше не должно существовать. У вас есть какой-либо другой индекс в вашем кластере с похожим именем типа?

Чтобы ответить на вопрос: How to delete document types in elasticsearch?, используйте Удалить API сопоставления:

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

EDIT. Из elasticsearch 2.0 это будет невозможно. См. Сопоставление изменений. Вам нужно будет установить "Удалить по запросу" и запустить запрос, который удалит ваши документы, но отображение все равно будет существовать. Поэтому лучше всего переиндексировать ваши документы в другом индексе без старого типа.

Но поскольку @mguillemin и @javanna сказали, что при удалении индекса все привязки к этому индексу также удаляются:

curl -XDELETE http://localhost:9200/index

Ответ 2

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

POST index-name/type-name/_delete_by_query
{
    "query": { 
        "match": {
            "message": "some message"
        }
    }
}

Для дальнейшего чтения см. Документы

Ответ 3

В последней версии поиска эластичности они больше не поддерживают удаление типов документов. Он упоминается в документации

Больше невозможно удалить отображение для типа. Вместо этого вы должен удалить индекс и воссоздать его с новыми сопоставлениями.

Ответ 4

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

curl -XPOST http://<host>:9200/<index>/<type>/_delete_by_query