Elasticsearch 使用 php curl 插入数据
<?php
/**
* Created by PhpStorm.
* User: func7
* Date: 2018/11/8
* Time: 11:24
*/
set_time_limit(0);
header("Content-type: text/html; charset=utf-8"); $dbhost = "127.0.0.1";
$username = "test";
$userpass = "testadmin";
$dbdatabase = "test"; $db_con = mysqli_connect($dbhost, $username, $userpass) or die("Unable to connect to the MySQL!");
//选择一个需要操作的数据库
$db_con->query("SET NAMES utf8");
mysqli_select_db($db_con, $dbdatabase);
/***********连接数据库****end******/
//应用查询及处理数据
$sqlData = mysqli_query($db_con, "SELECT
a.id AS _id,
a.id,
a.NAME,
a.STATUS,
a.state,
a.package,
atype_id,
IF
( b.rank = 3, 3, 1 ) AS rank,
IF
( channel_type & 2 = 2, 0, 1 ) AS `show`
FROM
apps AS a
LEFT JOIN apps_rank AS b ON a.id = b.app_id
WHERE
a.id >1
AND a.id <=12000
");
//提取数据
$Esdata = array();$cl = curl_init();
curl_setopt($cl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($cl, CURLOPT_PORT, 9200);
curl_setopt($cl, CURLOPT_TIMEOUT, 2000);
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_FORBID_REUSE, 0);
curl_setopt($cl, CURLOPT_CUSTOMREQUEST, 'PUT'); //GET 获取 // DELETE 删除 //PUT 插入
if ($sqlData) {
while ($dataRow = mysqli_fetch_assoc($sqlData)) {
$Esdata['id'] = intval($dataRow['id']);
$Esdata['name'] = $dataRow['NAME'];
$Esdata['package'] = $dataRow['package'];
$Esdata['state'] = intval($dataRow['state']);
$Esdata['status'] = intval($dataRow['STATUS']);
$Esdata['atype_id'] = intval($dataRow['atype_id']);
$Esdata['rank'] = intval($dataRow['rank']);
$Esdata['show'] = intval($dataRow['show']);
$jsonStr = json_encode($Esdata, JSON_UNESCAPED_UNICODE);
//修改二,设置es导入
$baseUri = 'http://localhost:9200/test/test_type/' . $Esdata['id'];
curl_setopt($cl, CURLOPT_URL, $baseUri);
curl_setopt($cl, CURLOPT_POSTFIELDS, $jsonStr);
$response = curl_exec($cl);
}
}
unset($Esdatas);//销毁数组
file_put_contents('log.log',$response);
curl_close($cl); usleep(50000);//自定义延迟
Elasticsearch的增删改查操作 在使用curl的时候可以修改
curl_setopt($cl, CURLOPT_CUSTOMREQUEST, 'PUT'); //GET 获取 // DELETE 删除 //PUT 插入
Elasticsearch 使用 php curl 插入数据的更多相关文章
- Elasticsearch PUT 插入数据
{ "error": { "root_cause": [ { "type": "illegal_argument_exceptio ...
- elasticsearch REST API方式批量插入数据
elasticsearch REST API方式批量插入数据 1:ES的服务地址 http://127.0.0.1:9600/_bulk 2:请求的数据体,注意数据的最后一行记得加换行 { &quo ...
- python批量插入数据到es和读取es数据
一.插入数据 1.首先准备类似如下数据 {"_type": "type1", "_id": 1, "_index": & ...
- elasticsearch 5.x 系列之五 数据导入导出
一.首先给大家发一个福利,分享一个elasticsearch 数据导出工具. esm github 源码地址: https://github.com/medcl/esm 下载编译好的对应elastic ...
- 在ES批量插入数据超时时自动重试
当我们使用ES批量插入数据的时候,一般会这样写代码: from elasticsearch import Elasticsearch,helpers es =Elasticsearch(hosts=[ ...
- 数据库插入数据返回当前主键ID值方法
当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...
- C#批量插入数据到Sqlserver中的四种方式
我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...
- mysql 插入数据失败防止自增长主键增长的方法
mysql设置了自增长主键ID,插入失败的那个自增长ID也加一的,比如失败5个,下一个成功的不是在原来最后成功数据加1,而是直接变成加6了,失败次数一次就自动增长1了,能不能让失败的不增长的? 或者说 ...
- jdbc java数据库连接 7)获取插入数据的自增长值
我们创建一个sql表,里面的数据往往都会有自增长值. 那么,我们用jdbc插入数据的时候,要想同时获得这个增长值. 代码: /** * * 这是插入一条数据的同时,获取该数据的则增长列的值(该例子的自 ...
随机推荐
- C# Task ContinueWith
static void Main(string[] args) { Task firstTask = Task.Run(() => { PrintPlus(); }); Task secondT ...
- Docker配置yapi接口
一.安装Docker 第一步:yum 包更新到最新 sudo yum update 第二步:安装需要的软件包 yum-util 提供yum-config-manager功能,另外两个是devicema ...
- 1-函数返回值-return详解及应用-1
return 返回值 可以是:数字.字符串.布尔.函数.对象(元素\[]\{}\null).未定义 <script> function fn1(){return 100;} aler ...
- 细数C++中的for循环
1.for(;;)这个是最基础最简单的for循环,从刚开始学习C语言的时候就知道的.for(int i = 0; i < 10; ++i){ }2.foreach完整的是for each(obj ...
- 【LeetCode】198. 打家劫舍
打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定 ...
- MySQL数据库(一)索引
索引的作用是操作数据库时避免全表扫描. 索引的机制 B Tree与B+Tree索引 B(blance) 树可以看作是对2-3查找树的一种扩展,即他允许每个节点有M-1个子节点. 根节点至少有两个子节点 ...
- gevent实现协程
gevent的好处:能够自动识别程序中的耗时操作,在耗时的时候自动切换到其他任务 # gevent的好处:能够自动识别程序中的耗时操作,在耗时的时候自动切换到其他任务 from gevent impo ...
- SpringCloud学习笔记(八、SpringCloud Bus)
目录: 什么是bus消息总栈 如何使用bus消息总栈 什么是bus消息总栈 SpringCloud Bus使用轻量的消息代理连接分布式系统的各个节点,可以用于系统状态变更时的广播(如配置变更)或其它管 ...
- 201871010132-张潇潇-《面向对象程序设计(java)》第八周总结
201871010132-张潇潇<面向对象程序设计(java)>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...
- Redis缓存策略
常用策略有“求留余数法”和“一致性HASH算法” redis存储的是key,value键值对 一.求留余数法 使用HASH表数据长度对HASHCODE求余数,余数作为索引,使用该余数,直接设置或访问缓 ...