我使用指定的文檔類型「mytype」創建索引「myindex」。我可以刪除索引,但似乎「mytype」仍然存在,而不受索引限制。如何刪除elasticsearch中的文檔類型?
我該如何擺脫「mytype」?
我使用指定的文檔類型「mytype」創建索引「myindex」。我可以刪除索引,但似乎「mytype」仍然存在,而不受索引限制。如何刪除elasticsearch中的文檔類型?
我該如何擺脫「mytype」?
如果您確實刪除了索引,則此索引中的映射不應再存在。 您的羣集中是否有其他類似名稱的索引?
要回答的問題:How to delete document types in elasticsearch?
,使用Delete Mapping API:
curl -XDELETE http://localhost:9200/index/type
編輯:從elasticsearch 2.0,這將是不可能的了。見Mapping changes。您將不得不安裝Delete By Query plugin並運行一個將刪除文檔的查詢,但映射仍然存在。因此,最好將文檔重新索引到另一個索引而不使用舊類型。
但作爲@mguillemin和@javanna說,當你刪除索引,每個映射連接到該指數也將被刪除:
curl -XDELETE http://localhost:9200/index
我能夠通過捲曲和感覺做到這一點,但我怎樣才能刪除使用python客戶端的elasticsearch類型,但我能夠使用刪除功能刪除一個類型的文檔。 – 2015-05-12 13:00:19
我編輯了elasticsearch 2.0的初始答案。 – dadoonet 2015-09-18 09:41:37
通過查詢插件刪除的鏈接應該是https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugins-delete-by-query.html – 2016-05-04 16:54:45
在彈性搜索的最新版本,不再支持刪除文件類型。它在documentation中提到
不再可能刪除某個類型的映射。相反,您應該刪除索引並使用新的映射重新創建索引。
您可以使用_delete_by_query
路徑來刪除類型。
POST index-name/type-name/_delete_by_query
{
"query": {
"match": {
"message": "some message"
}
}
}
您甚至不需要指定請求正文。只是
curl -XPOST http://<host>:9200/<index>/<type>/_delete_by_query
如果您刪除索引,則關聯的類型也會被刪除,它們不能在沒有索引的情況下存在。是什麼讓你認爲「mytype」仍然存在? – mguillermin 2013-05-14 15:28:36
在「頭」插件,我可以去「瀏覽器」,看到「mytype」列在「類型」 – Rolando 2013-05-14 18:13:24
奇怪。映射屬於索引的類型和類型。如果你刪除索引,你就會失去它們。你確定使用刪除API刪除了索引嗎? – javanna 2013-05-14 18:31:35