php elasticsearch,PHP ElasticSearch的使用
系统是Windows server 2003。
ElasticSearch是一个基于Lucene的稳定的、分布式、RESTFul的搜索引擎。其实所谓的RestFul就是它提供URL供你调用(建立索引和进行检索),不过直接这样使用实在是太凶残了。所以,它也提供了一系列client包,相当于将curl请求封装了,client包支持的语言包括Java、PHP、Python、Ruby和Perl等等。
PHP版的client包叫做elasticsearch-php,可以在Git_hub上下载。地址如下:https://github.com/elasticsearch/elasticsearch
要使用elasticsearch-php有如下三个要求:
1.PHP的版本在5.3.9以上,我用的是PHP5.3.23
2.在项目中使用Composor来管理包,下载地址如下:https://getcomposer.org/
3.在php.ini中开启curl和openssl
要使用elasticsearch,需要JDK的版本大于6,最好选择8吧,因为7有漏洞....
截一张需要的包图:
启动elasticsearch很简单,直接进入解压目录,运行elasticsearch.bat就可以了,看到最后console输出start,就启动成功了。
接下来介绍如何使用elasticsearch-php:
1.新建一个文件夹取名为test,此为项目文件夹
2.在里面放入一个命名为composer.json的文件,文件内容为:
{
"require":{
"elasticsearch/elasticsearch" : "~1.2"
}
}
3.将composer.phar拷贝到test文件夹中,cd 到test文件夹,输入命令:php composer.phar install --no-dev 等待安装成功
这个时候test文件夹下面应该会出现vendor文件夹,里面有elasticsearch、composer、guzzle等文件夹,很多内容
4.这个时候,就可以使用elasticsearch进行建立索引和进行检索了
require_once('vendor/autoload.php');
function get_conn(){
$host = 'ip';
$dbname = 'dbname';
$user = 'user';
$passwd = 'passwd';
$conn = new PDO("pgsql:dbname=$dbname;host=$host",$user,$passwd);
return $conn;
}
function create_index(){
//Elastic search php client
$client = new Elasticsearch\Client();
$sql = "SELECT * FROM log";
$conn = get_conn();
$stmt = $conn->query($sql);
$rtn = $stmt->fetchAll();
//delete index which already created
$params = array();
$params['index'] = 'log_index';
$client->indices()->delete($params);
//create index on log_date,src_ip,dest_ip
$rtnCount = count($rtn);
for($i=0;$i
$params = array();
$params['body'] = array(
'log_date' => $rtn[$i]['log_date'],
'src_ip' => $rtn[$i]['src_ip'],
'dest_ip' => $rtn[$i]['dest_ip']
);
$params['index'] = 'log_index';
$params['type'] = 'log_type';
//Document will be indexed to log_index/log_type/autogenerate_id
$client->index($params);
}
echo 'create index done!';
}
function search(){
//Elastic search php client
$client = new Elasticsearch\Client();
$params = array();
$params['index'] = 'log_index';
$params['type'] = 'log_type';
$params['body']['query']['match']['src_ip'] = '1.122.33.141';
$rtn = $client->search($params);
var_dump($rtn);
}
set_time_limit(0);
//create_index();
search();
?>
建立索引成功,可以看到“create index done!”
查询成功,可以看到返回的结果数组。
Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
Elasticsearch 5.0 中term 查询和match 查询的认识
Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...
以bank account 数据为例,认识elasticsearch query 和 filter
Elasticsearch 查询语言(Query DSL)认识(一) 一.基本认识 查询子句的行为取决于 query context filter context 也就是执行的是查询(query)还是 ...
Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
.net Elasticsearch 学习入门笔记
一. es安装相关1.elasticsearch安装 运行http://localhost:9200/2.head插件3.bigdesk插件安装(安装细节百度:windows elasticsear ...
自己写的数据交换工具——从Oracle到Elasticsearch
先说说需求的背景,由于业务数据都在Oracle数据库中,想要对它进行数据的分析会非常非常慢,用传统的数据仓库-->数据集市这种方式,集市层表会非常大,查询的时候如果再做一些group的操作,一个 ...
如何在Elasticsearch中安装中文分词器(IK+pinyin)
如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...
jar hell &; elasticsearch ik 版本问题
想给es 安装一个ik 的插件, 我的es 是 2.4.0, 下载了一个版本是 1.9.5, [2016-10-09 16:56:26,248][INFO ][node ] [node-2] init ...
随机推荐
geotrellis使用(二十八)栅格数据色彩渲染(多波段真彩色)
目录 前言 实现过程 总结 一.前言 上一篇文章介绍了如何使用Geotrellis渲染单波段的栅格数据,已然很是头疼,这几天不懈努力之后工作又进了一步,整清楚了如何使用Geotrelli ...
Win10 无法完全关机问题
Win10是重新安装的.开机运行时间长了或者跑的东西多了.关机,键盘灯还是亮的,要强制按电源键关机才行. 问题解决:从网上搜以为是显卡驱动问题,上官网更新最新驱动,结果还是关不了机.偶然间搜到是Int ...
php 利用activeMq+stomp实现消息队列
php 利用activeMq+stomp实现消息队列 一.activeMq概述 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J ...
InfiniBand技术简介
InfiniBand技术简介 转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 随着CPU和通讯处理速度的 ...
C/C++变量命名规则
变量命名规则是为了增强代码的可读性和easy维护性. 变量命名规则: 一.用最短字符表示最准确的意义. 二.使用变量前缀. 1. 整型前缀 int nId; ...
AngularJS初步
AngularJS特点 遵循AMD规范 不需要操作节点 对于jquery,一般是利用现有完整的DOM,然后在这戏Dom的基础上进行二次调教了:而对于AngularJS等框架则是根据数据模型以及其对应用 ...
Python rich comparisons 自定义对象比较过程和返回值
Classes wishing to support the rich comparison mechanisms must add one or more of the following new ...
how2heap学习笔记
github源代码地址 这里只分析glibc2.25堆分配的特性,为了方便调试编译时使用 gcc -g -no-pie -o
python(41):copy拷贝(深拷贝deepcopy与浅拷贝copy)
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1.copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2.copy.deepco ...
rabbitmq系列(一)-基本概念理解
1.简介 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue protocol)的开源实现.AMQP高级消息队列,说白了就是一个开源的消息中间件.它能解决 ...
php elasticsearch,PHP ElasticSearch的使用相关推荐
- php elasticsearch ik,elasticsearch 中文分词(elasticsearch-analysis-ik)安装
elasticsearch 中文分词(elasticsearch-analysis-ik)安装 在elasticsearch的plugins目录下,创建ik目录 cd /usr/local/elast ...
- 【Elasticsearch】Elasticsearch 动态模板(Dynamic templates)
1.概述 动态映射请参考: [Elasticsearch]Elasticsearch 7 : 动态映射 dynamic 本博客摘抄自:Elastic Stack 实战手册(早鸟版).pdf 原文可看, ...
- 【Elasticsearch】Elasticsearch日志场景最佳实践
1.概述 转载:Day 12 - Elasticsearch日志场景最佳实践 相似文章:[Elasticsearch]Elasticsearch 最佳实践系列之分片恢复并发故障 Elasticsear ...
- 【Elasticsearch】Elasticsearch 7.4的 soft-deletes 是个什么鬼
1.概述 转载:Elasticsearch 7.4的 soft-deletes 是个什么鬼 硬删除:[Elasticsearch]Elasticsearch如何物理删除给定期限的历史数据? 2.新概念 ...
- 【Elasticsearch】Elasticsearch 存储桶聚合
1.概述 翻译:https://iridakos.com/programming/2018/10/22/elasticsearch-bucket-aggregations [Elasticsearch ...
- 【Elasticsearch】elasticsearch 压缩索引 shrink
1.概述 关于索引的一些解读,请参考: [Elasticsearch]elasticsearch 索引 详解 官网 压缩索引 shrink shrink命令可以将一个已有的索引压缩成一个新的索引,同时 ...
- 【Elasticsearch】Elasticsearch自定义评分的N种方法
1.概述 首先参考文章:[Elasticsearch]Elasticsearch 相关度评分 TF&IDF 然后转载文章:实战 | Elasticsearch自定义评分的N种方法 2.三个问题 ...
- 【Elasticsearch】Elasticsearch analyzer 中文 分词器
1.概述 转载: https://blog.csdn.net/tzs_1041218129/article/details/77887767 分词器首先看文章:[Elasticsearch]Elast ...
- 【elasticsearch】elasticsearch 生命周期 resourceAlreadyExistsException
1.背景 生命周期内容参考:[Elasticsearch]Elasticsearch 索引生命周期管理 查看es的索引生命周期,发现有个索引报错resourceAlreadyExistsExcepti ...
- 【Elasticsearch】 elasticsearch之Recovery 手动触发索引滚动
文章目录 1.概述 2.自动滚动测试 3.手动滚动测试 4.结束老索引的生命周期 1.概述 es相关介绍参考Recovery [Elasticsearch] elasticsearch之Recover ...
最新文章
- 在报文摘要算法MD5中,首先要进行明文分组与填充,其中分组时明文报文摘要按照(42)位分组。【答案】C
- 利用nginx-status监控nginx服务器状态
- python字符串split_「干货」Python字符串中的split方法
- Servlet线程安全2
- aac蓝牙编解码协议_最新的真无线蓝牙耳机选购指南
- arm中断保护和恢复_浅谈ARM处理器的七种异常处理
- 石子合并(动态规划DP)
- 学计算机应用技术应具备什么素养,2018年云南经济管理学院单招计算机应用技术职业适应性测试大纲...
- 操作系统复习笔记(二)
- 依赖的包_运维丨python安装mysql的依赖包mysqlpython操作
- 硬件:Intel CPU发展史
- 计算机技术工种技师,中级及以上专业技术职务或者具有技师以上职业资格具体包括哪些职务和资格...
- html表格字符分散,如何实现Word表格文字分散对齐?
- Linux 创建一个简单的私有CA、发证、吊销证书
- 编程练习:MP3播放器
- python 版本错误导致的 roscore 问题
- 执行npm run build的时候报错怎么办?
- MAC安装JDK及环境变量配置
- error:1962 no operating system found
- BeanUtils复制粘贴内容