前:elasticsearch(3)動作-CURL
1.Bulkフォーマット
{action:{metadata}}\n //注意 “\n”表示换行符
{requstbody}\n (请求体)
文法 | 説明 |
---|---|
アクション | (文書が存在しないときに作成)(行動)、更新(アップデート文書)の作成、格納するインデックス(新しいドキュメントを作成したり、ドキュメントを置き換える)、削除(文書を削除します)。 |
メタデータ | (具体的な動作挙動指標情報)、データ_index、_type、_idを指定する必要があります。 |
違いとインデックスを作成します。データが存在する場合、それは正常に実行することができますインデックスを使用し、既存の文書を促すメッセージが表示されます、操作が失敗した作成を使用します。
例:
1.一括挿入
ファイル今ありbooks.json
、次のように書かれるバッチデータのニーズの、ファイル内のデータは:
{"index":{"_index":"books","_type":"info","_id":"1"}}
{"name":"西游记","author":"吴承恩","price":"40"}
{"index":{"_index":"books","_type":"info","_id":"2"}}
{"name":"三国演义","author":"罗贯中","price":"41"}
{"index":{"_index":"books","_type":"info","_id":"3"}}
{"name":"水浒传","author":"施耐庵","price":"42"}
{"index":{"_index":"books","_type":"info","_id":"4"}}
{"name":"红楼梦","author":"曹雪芹","price":"43"} //注意:此处还需要点下回车键,否则会报错
使用して、Xftp
このファイルをインポートするlinux
には/home/zhangsan/data/
、ディレクトリ:
でlinux
、次のコマンドを入力
curl -H 'Content-Type:application/json' -XPOST 'http://120.76.217.14:9200/_bulk?pretty' --data-binary '@/home/zhangsan/data/books.json'
そして、インデックスを照会:
[zhangsan@tomcat-tst data]$ curl -XGET 'http://120.76.217.14:9200/books/info/_search?pretty'
{
"took" : 813,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "books",
"_type" : "info",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"name" : "西游记",
"author" : "吴承恩",
"price" : "40"
}
},
{
"_index" : "books",
"_type" : "info",
"_id" : "2",
"_score" : 1.0,
"_source" : {
"name" : "三国演义",
"author" : "罗贯中",
"price" : "41"
}
},
{
"_index" : "books",
"_type" : "info",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"name" : "水浒传",
"author" : "施耐庵",
"price" : "42"
}
},
{
"_index" : "books",
"_type" : "info",
"_id" : "4",
"_score" : 1.0,
"_source" : {
"name" : "红楼梦",
"author" : "曹雪芹",
"price" : "43"
}
}
]
}
}
[zhangsan@tomcat-tst data]$
一括書き込み成功、
2.バッチ処理
{"update":{"_index":"books","_type":"info","_id":"1"}} //更新文档
{"doc":{"name":"人性的弱点","author":"卡耐基"}} //请求体
{"delete":{"_index":"books","_type":"info","_id":"2"}} //删除不需要请求体
{"create":{"_index":"books","_type":"info","_id":"10"}} //当文档不存在的时候创建文档
{"name":"孙子兵法","author":"孙武","price":"42"} //请求体
{"index":{"_index":"books","_type":"info","_id":"3"}} //创建新文档或者替换已用文档
{"name":"厚黑学","author":"李宗吾","price":"50"} //请求体
上記バルクバッチ操作4に実質的にありますaction
。
3.バッチを処理するデータの量
一括操作インポートデータがメモリに処理されるので、データ処理量が制限されるため。どのくらいのハードウェア構成、ドキュメントのサイズと複雑さ、インデックス、および検索の負荷に応じて、データ量を扱うことができます。
一般的な推奨事項は、1000から5000の文書が、提案の大きさは、デフォルトでは100Mを超えることはできません、あなたが(設定elasticsearch.yml下)プロファイルESを設定することができ、5〜15メガバイトです。
4.ユニークで指定します/index/type
もっと上のバッチ操作の文書のリクエストボディに、我々は同じを持っているには/books/info
、私たちができる指定/書籍/情報、あなたはまだメタデータ列_indexと_typeをカバーすることができますが、それはURLを使用しますので、デフォルトとしてメタデータ値:curl
URL
POST /books/info
{"index":{"_id":"3"}} //创建新文档或者替换已用文档
{"name":"厚黑学","author":"李宗吾","price":"50"} //请求体