2017-07-19 5 views
0

ElasticSearch 5.5のドキュメントには、一括操作を使用してドキュメントをインデックスのデフォルトマッピングにインデックスする方法の例はありません。私がドキュメントのどこかでそれを紛失していない限り、なぜこれがでないのかについては何の示唆も与えていません。ElasticSearchのデフォルトマッピングにドキュメントを一括してインデックス登録するにはどうすればよいですか?

ES 5.5のドキュメントは、バルクインデックスの1つの明示的な例示します:

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

をしかし、それはまた

エンドポイントは/ _bulk、/ {インデックス}/_バルク、および{インデックスであることを述べています}/{type}/_ bulk。 インデックスまたはインデックス/タイプが指定されている場合、明示的に指定しない大量のアイテムには、デフォルトで が使用されます。

中間エンドポイントが有効であり、a)索引付けされた各ドキュメントのメタデータに明示的に型を指定する必要があること、またはb)ドキュメントをデフォルトのマッピングに索引付けできること"_デフォルト_")。

しかし、私はこれを動作させることはできません。

  • メタデータにタイプが指定されていない/ myindex/bulkエンドポイントを試しました。

  • "_type": "_default_"を指定して試しました。

  • 私は/ myindex/_default_/bulkを試しました。

答えて

0

これは、_default_マッピングとは関係ありません。これは、URLで指定したデフォルトのタイプに戻っています。次のスニペットは、まったく同じ

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にインデックス化されるだろうしかし、あなたは、次の

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

を行うことができます1つはtestになります。

希望はこれが理にかなっています。

+0

これは質問に対処しません。私は "type1"型、または他の型を持っていないので、一括索引付けを使うだけの型を作る必要はありません。したがって、問題は残っています。タイプを指定せずに_bulkインデックス操作を使用するにはどうすればよいですか? – Klay

+0

すべてのインデックス操作には、バルクとは独立した型があります。タイプなしでドキュメントをインデックスに登録することはできません。 – alr

関連する問題