php-elasticsearch 單條、批量插入數據

                                                        php-elasticsearch 單條、批量插入數據

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(
    'name' => '張三',
    'age' => 99
);
$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(
        'name' => '張三' . $i,
        'age' => 99 + $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(
        'name' => '張三' . $i,
        'age' => 99 + $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. 謹記最後一個換行符不要落下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章