php-elasticsearch bulk批量插入數據


1.單條插入 

<?php
include '../vendor/Elasticsearch/autoload.php';
$a['hosts'] = array(
#需要用戶名時 http://user:password@URL:por 其他時候直接寫ip:port
'ip:9200',
);
$client = new \Elasticsearch\Client($a);

#單條插入
$params = array();
$params['body'] = array(
'xzdfaf' => 'xfsa'
);
$params['index'] = 'paopao';
$params['type'] = 'test';
// $params['id'] = 'w1231313';
$ret = $client->index($params);
View Code

2.批量插入

<?php
include '../vendor/Elasticsearch/autoload.php';
$a['hosts'] = array(
#需要用戶名時 http://user:password@URL:por 其他時候直接寫ip:port
'ip:9200',
);
$client = new \Elasticsearch\Client($a);

#bulk批量生成
$params['index'] = 'paopao';
$params['type'] = 'test';
for($i = 21; $i <= 30; $i ++) {
$params['body'][]=array(
'create' => array( #注意create也可換成index
'_id'=>$i
),
);

$params['body'][]=array(
'aa'=>$i
);
}
$res = $client->bulk($params);
View Code

3.以上必須指定id,但是我想用默認的id怎么辦

<?php
include '../vendor/Elasticsearch/autoload.php';
$a['hosts'] = array(
#需要用戶名時 http://user:password@URL:por 其他時候直接寫ip:port
'ip:9200',
);
$client = new \Elasticsearch\Client($a);
#bulk批量生成
for($i = 41; $i <= 50; $i ++) {
$params['body'][]=array(
'index' => array(
'_index'=> 'paopao',
'_type'=> 'test'
),
);

$params['body'][]=array(
'aa'=>$i
);
}
$res = $client->bulk($params);
View Code

4.其他拓展
行為 解釋

create
當文檔不存在時創建
index 
創建新文檔或替換已有文檔。
update
局部更新文檔。
delete
 刪除一個文檔。

 

POST /_bulk
{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }} 
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title": "My first blog post" }
{ "index": { "_index": "website", "_type": "blog" }}
{ "title": "My second blog post" }
{ "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }
{ "doc" : {"title" : "My updated blog post"} } 


請注意 delete 動作不能有請求體,它后面跟着的是另外一個操作。

謹記最后一個換行符不要落下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM