2017-07-19 69 views
0

ElasticSearch 5.5的文檔沒有提供如何使用批量操作將文檔索引到索引的默認映射的示例。它也沒有說明爲什麼這可能是而不是,除非我錯過了文檔中的其他地方。如何將文檔批量索引到ElasticSearch的默認映射中?

的ES 5.5文檔提供了批量索引的一個明顯的例子:

POST _bulk 
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } } 
{ "field1" : "value1" } 

但它也說,

的端點/ _bulk,/ {指數}/_批量和{指數}/{類型}/_散裝。 提供索引或索引/類型時,它們將在未明確提供它們的批量項目上使用 默認值。

因此,中間端點是有效的,它意味着對我說了),你必須明確地提供索引的元數據爲每個文檔類型,或者b)你可以索引文件在默認映射( 「_默認_」)。

但我不能得到這個工作。

  • 我試過/ myindex/bulk端點沒有在元數據中指定的類型。

  • 我試過用「_type」:「_default_」指定。

  • 我試過了/ myindex/_default_/bulk。

回答

0

這有什麼好做的_default_映射。這是關於回落到您在URL中指定的默認類型。你可以做以下

POST _bulk 
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } } 
{ "field1" : "value1" } 

但是下面的代碼片段是完全一樣的

POST /test/type1/_bulk 
{ "index" : { "_id" : "1" } } 
{ "field1" : "value1" } 

你可以混合使用這

POST foo/bar/_bulk 
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } } 
{ "field1" : "value1" } 
{ "index" : { "_id" : "1" } } 
{ "field1" : "value1" } 

在這個例子中,一個文件將被收錄到foo和一個到test

希望這是有道理的。

+0

這並沒有解決這個問題。我沒有「type1」類型或任何其他類型,並且我不想創建僅用於批量索引的類型。所以問題依然存在:如何在沒有類型的情況下使用_bulk索引操作? – Klay

+0

每個索引操作都有一個類型,與批量無關。不能爲沒有類型的文檔建立索引。 – alr

相關問題