2016-12-29 6 views
0

私はElasticsearch 5.1.1を使用しています。私のインデックスに文書を一括挿入して、データベースの更新のために文書のフィールドの1つを自動生成_idと共に取得する必要があります。 。Elasticsearch 5 - バルク挿入時のドキュメントからの戻りフィールド

私は、次のもののような要求をしようとしている:

curl -XPOST localhost:9200/_bulk?pretty -d ' 
{ "index" : { "_index" : "articles_201701", "_type" : "articles_type" , "_source_include" : "db_id"} } 
{ "db_id" : "value1" } 
{ "index" : { "_index" : "articles_201701", "_type" : "articles_type" , "_source_include" : "db_id"} } 
{ "db_id" : "value2" } 
' 


curl -XPOST localhost:9200/_bulk?pretty -d ' 
{ "index" : { "_index" : "articles_201701", "_type" : "articles_type", "fields" : ["db_id"]} } 
{ "db_id" : "value1" } 
{ "index" : { "_index" : "articles_201701", "_type" : "articles_type", "fields" : ["db_id"]} } 
{ "db_id" : "value2" } 
' 

curl -XPOST 'localhost:9200/_bulk?pretty&fields=db_id' -d ' 
{ "index" : { "_index" : "articles_201701", "_type" : "articles_type" } } 
{ "db_id" : "value1" } 
{ "index" : { "_index" : "articles_201701", "_type" : "articles_type"} } 
{ "db_id" : "value2" } 
' 

それらのいくつかをわずかな変化およびそれらの組み合わせが、運と。これは、ことも可能である場合、オブジェクトの配列を作成します

+0

文書を挿入する際に一括入力を使用する場合は、_idex、_typeおよび_Idを適用する必要があります。_idを適用しない場合は、elasticsearchが_idを生成し、 generate_idを取得します。 Elasticsearchは他のフィールドを生成しません – Lax

+0

あなたの答えとおかげでありがとう、おそらく私はよく説明していない、私は_idを生成するESが必要ですが、私は "db_id"フィールド(はい、私はindex)を、_idと一緒に使用します。このように私は 'UPDATEテーブルセットelastic_id =:_id WHERE db_id =:db_id' のような何かを行うことができます。これは適切なアプローチではないかもしれませんが、返された_ids(一括挿入から)をdb_idsがあまりにも多くのオーバーヘッドであることを知ってください... 私がしたいことは、pgsqlの 'INSERT INTOテーブルVALUES(?、?、?)RETURNING id、name'のようなものです。 –

+0

db_idを生成すると、それはあなたのためですか? – Lax

答えて

0

を...

わからない、各オブジェクトは、DB_IDとId.beforeバルクは、バルクを呼び出した後に生成elasticsearch _idでidフィールドを設定し、DB_IDを設定して呼び出す含まれてい。今すぐIDとdb_idを更新する場合

関連する問題