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" }
'
それらのいくつかをわずかな変化およびそれらの組み合わせが、運と。これは、ことも可能である場合、オブジェクトの配列を作成します
文書を挿入する際に一括入力を使用する場合は、_idex、_typeおよび_Idを適用する必要があります。_idを適用しない場合は、elasticsearchが_idを生成し、 generate_idを取得します。 Elasticsearchは他のフィールドを生成しません – Lax
あなたの答えとおかげでありがとう、おそらく私はよく説明していない、私は_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'のようなものです。 –
db_idを生成すると、それはあなたのためですか? – Lax