2017-07-19 65 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

相关问题