2016-07-11 57 views
0

我在elasticsearch中有一個名爲「animals」的索引。這包含幾個「狗」類型的文件。 我想刪除「動物」索引中的所有「狗」文檔。我正在使用python elasticsearch軟件包。 我的Python代碼如下:批量刪除elasticsearch中特定類型的文檔

connection = Elasticsearch([{"host": "myhost", "port": "myport" } ]) 
body = {} # What should I put in the body??? 
connection.bulk(body, index="animals", doc_type="dogs", ignore=[400, 404]) 

在這裏,我不知道是什麼,我需要放在body。誰能幫我嗎?

批量方法在https://github.com/elastic/elasticsearch-py/blob/master/elasticsearch/client/init.py#L1002

回答

0

定義中有elasticsearch-py沒有API來刪除一個類型的所有文件。這是因爲Elasticsearch 2.x以上沒有API刪除type。 從documentation

在1.x中,有可能刪除 類型映射,與所有類型的文件一起使用 刪除映射API。這不再被支持,因爲 類型的字段可能會保留在索引中,導致以後損壞 。

相反,如果您需要刪除類型映射,則應重新索引到不包含映射的 新索引。如果您只需要 刪除屬於該類型的文檔,請改爲使用 刪除查詢插件。