php-elasticsearch bulk批量插入数据

本文详细介绍如何使用PHP脚本语言进行Elasticsearch的数据操作,包括单条数据的插入、批量数据的插入以及如何利用默认ID进行记录。此外,还探讨了不同行为如create、index、update和delete的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);

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);

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);

4.其他拓展

行为解释
create当文档不存在时创建之。
index创建新文档或替换已有文档。
update局部更新文档。
delete删除一个文档。

 

POST /_bulk
{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }} (1)
{ "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"} } (2)
  1. 请注意 delete 动作不能有请求体,它后面跟着的是另外一个操作。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值