php-elasticsearch bulk批量插入数据

Posted 小跑跑泡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php-elasticsearch bulk批量插入数据相关的知识,希望对你有一定的参考价值。

1.单条插入 

技术图片
<?php
include ‘../vendor/Elasticsearch/autoload.php‘;
$a[‘hosts‘] = array(
#需要用户名时 http://user:[email protected]:por 其他时候直接写ip:port
‘ip:9200‘,
);
$client = new ElasticsearchClient($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:[email protected]:por 其他时候直接写ip:port
‘ip:9200‘,
);
$client = new ElasticsearchClient($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:[email protected]:por 其他时候直接写ip:port
‘ip:9200‘,
);
$client = new ElasticsearchClient($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 动作不能有请求体,它后面跟着的是另外一个操作。

谨记最后一个换行符不要落下。

以上是关于php-elasticsearch bulk批量插入数据的主要内容,如果未能解决你的问题,请参考以下文章

架构师成长记_第八周_19_ES- 批量操作 bulk

架构师成长记_第八周_19_ES- 批量操作 bulk

ES 批量操作bulk

初识ElasticSearch -批量操作之bulk | 条件查询 | 其它查询

初识ElasticSearch -批量操作之bulk | 条件查询 | 其它查询

06 ES批量操作 Bulk