6

私はelasticsearchを初めて使用し、巨大なデータ(mysqlテーブルに16kを超える巨大な行)があります。このデータをelasticsearchにプッシュする必要があり、インデックスに登録する際に問題が発生しています。データのインデックス作成を高速化する方法はありますか?巨大なデータを処理する方法は?

4

3 に答える 3

3

Bulk APIの拡張

に POST リクエストを送信します。/_bulk

ペイロードは次の形式に従い\nます。 は改行文字です。

action_and_meta_data\n
optional_source\n
action_and_meta_data\n
optional_source\n
...

あなたのjsonがきれいに印刷されていないことを確認してください

利用可能なアクションは、、、indexおよびです。createupdatedelete


一括読み込みの例

質問に答えるには、データをインデックスに一括読み込みするだけの場合。

{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{ "field1" : "value3" }

最初の行には、アクションとメタデータが含まれています。この場合、 を呼び出してcreateいます。タイプのドキュメントを、 (elasticsearch が自動生成する代わりに) のID を手動で割り当てたtype1名前のインデックスに挿入します。test3

2 行目には、マッピングのすべてのフィールドが含まれています。この例ではfield1、値がvalue3.

インデックスに挿入したい数だけこれらを連結するだけです。

于 2014-05-29T20:25:06.327 に答える
1

一括 API を試す

http://www.elasticsearch.org/guide/reference/api/bulk.html

于 2012-05-24T08:44:12.503 に答える