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" }}
{ "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批量插入数据的更多相关文章

  1. Elasticsearch —— bulk批量导入数据

    在使用Elasticsearch的时候,一定会遇到这种场景--希望批量的导入数据,而不是一条一条的手动导入.那么此时,就一定会需要bulk命令! 更多内容参考我整理的Elk教程 bulk批量导入 批量 ...

  2. Asp.Net使用Bulk批量插入数据

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Di ...

  3. sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )

    通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...

  4. elasticsearch REST API方式批量插入数据

    elasticsearch REST API方式批量插入数据 1:ES的服务地址  http://127.0.0.1:9600/_bulk 2:请求的数据体,注意数据的最后一行记得加换行 { &quo ...

  5. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  6. C#批量插入数据到Sqlserver中的三种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生 成 ...

  7. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ...

  8. C#_批量插入数据到Sqlserver中的四种方式

    先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记 ...

  9. SQLServer使用表值参数,高性能批量插入数据

    记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库. 今天又接到同事类似的需求,不过这 ...

随机推荐

  1. Python实现目录文件的全量和增量备份

    目标: 1.传入3个参数:源文件路径,目标文件路径,md5文件 2.每周一实现全量备份,其余时间增量备份 1.通过传入的路径,获取该路径下面的所有目录和文件(递归) 方法一:使用os.listdir ...

  2. spring4-2-bean配置-2-属性注入细节

    配置 bean,本章节中主要介绍蓝色文字部分. 配置形式:基于 XML 文件的方式:基于注解的方式 Bean 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & 实例工厂方法).F ...

  3. [C++] Lvalue and Rvalue Reference

    Lvalue and Rvalue Reference int a = 10;// a is in stack int& ra = a; // 左值引用 int* && pa ...

  4. hadoop分布式集群搭建前期准备(centos7)

    那玩大数据,想做个大数据的从业者,必须了解在生产环境下搭建集群哇?由于hadoop是apache上的开源项目,所以版本有些混乱,听说都在用Cloudera的cdh5来弄?后续研究这个吧,就算这样搭建不 ...

  5. 查看并解除Oracle锁

    当某个数据库用户在数据库中插入.更新.删除一个表的数据,或者增加一个表的主键时或者表的索引时, 常常会出现ora-00054:resource busy and acquire with nowait ...

  6. [欣赏代码片段] (JavaScript) Responsive jQuery

    jQuery(document).ready(function($) { /* getting viewport width*/ var responsive_viewport = $(window) ...

  7. JavaScript获取主流手机系统和型号

    <script src="http://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> < ...

  8. poi 获取excel数据 导入数据库

    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, ...

  9. smarty中用truncate来截取中英文字符串及避免中文乱码问题

    smarty中用truncate来截取含有中英文的字符串,可能会出现中文乱码问题.字符串截取长度不一问题,下面是新建个扩展函数,或修改原Truncate函数方法也可以的.扩展smarty/plugin ...

  10. Java内存模型(转载)

    本文章节: 1.JMM简介 2.堆和栈 3.本机内存 4.防止内存泄漏 1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很 ...