Mac上Elasticsearch 安装及PHP使用
ElasticSearch需要基于Java下运行,故首先保证已安装java
此处 mac 使用brew
brew cask install java
安装ElasticSearch
brew 安装
brew install ElasticSearch
终端输入elasticsearch
运行, 浏览器访问127.0.0.1:9200,出现下图,OK安装完成
composer 安装引用 elasticsearch
composer.json require中 加入
"elasticsearch/elasticsearch": "~6.0"
PHP 实现elasticsearch基本操作类
<?php
use Elasticsearch\ClientBuilder;
class ES {private $client;public function __construct(){$ci = get_instance();$params = array('127.0.0.1:9200');$this->client = ClientBuilder::create()->setHosts($params)->build();}//创建索引function createIndex($index_name = 'aki'){$params = ['index' => $index_name,'body' => ['settings' => ['number_of_shards' => 5,'number_of_replicas' => 0]]];return $this->client->indices()->create($params);}// 删除索引public function delIndex($index_name = 'aki') {$params = ['index' => $index_name];return $this->client->indices()->delete($params);}// 添加文档public function addDoc($id,$doc,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id,'body' => $doc];return $this->client->index($params);}// 判断文档存在public function existsDoc($id = 1,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id];return $this->client->exists($params);}// 获取文档public function getDoc($id = 1,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id];return $this->client->get($params);}// 更新文档public function updateDoc($id,$doc,$index_name = 'aki',$type_name = 'form') {// 可以灵活添加新字段,最好不要乱添加$params = ['index' => $index_name,'type' => $type_name,'id' => $id,'body' => ['doc' =>$doc]];return $this->client->update($params);}// 删除文档public function delDoc($id,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id];return $this->client->delete($params);}// 查询文档 (分页,排序,权重,过滤)public function searchDoc($keywords = "竞赛",$index_name = "aki",$type_name = "form",$sort = [],$from = 0,$size = 10) {$params = ['index' => $index_name,'type' => $type_name,'body' => ['query' => ['bool' => ['should' => [[ 'match' => [ 'title' => ['query' => $keywords,'boost' => 3, // 权重大]]],[ 'match' => [ 'content' => ['query' => $keywords,'boost' => 2,]]],],],],'sort' => ['price'=>['order'=>'desc']], 'from' => $from, 'size' => $size]];$results = $this->client->search($params);
// $maxScore = $results['hits']['max_score'];
// $score = $results['hits']['hits'][0]['_score'];
// $doc = $results['hits']['hits'][0]['_source'];return $results['hits']['hits'];}
}
测试使用:
ll('es');//加载ES类$r = $this->es->delIndex();$r = $this->es->createIndex();print_r($r);$docs = [];$docs[] = ['id'=>1,'title'=>'李白','content'=>'酒仙刺客','price'=>100];$docs[] = ['id'=>2,'title'=>'孙悟空','content'=>'腾云驾雾的辜负了紫霞的刺客。','price'=>300];$docs[] = ['id'=>3,'title'=>'胡歌','content'=>'尽职励志,不错哦。','price'=>1000000];$docs[] = ['id'=>4,'title'=>'王者荣耀','content'=>'游戏就玩王者荣耀。','price'=>998];$docs[] = ['id'=>5,'title'=>'鲁班','content'=>'小短腿,谁都想灭。','price'=>98];$docs[] = ['id'=>6,'title'=>'妲己','content'=>'祸国殃民。','price'=>998];$docs[] = ['id'=>7,'title'=>'吕布','content'=>'方天画戟,后手放大','price'=>2998];$docs[] = ['id'=>8,'title'=>'水晶','content'=>'保护我方水晶,进攻地方水晶。','price'=>19999];foreach ($docs as $k => $v) {$this->es->addDoc($v['id'],$v);} $r = $this->es->searchDoc("李白 歌 水"); echo "<pre>"; print_r($r);
输出结果:
linux java jdk:
yum install java-1.8.0-openjdk-devel.x86_64
安装 es https://www.jianshu.com/p/1bf398735dd4
注意修改 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536 后退出终端重新登录
守护进程启动 加 -d
Mac上Elasticsearch 安装及PHP使用相关推荐
- Android Studio中mac上面的安装
Android Studio中mac上面的安装 学习了:https://blog.csdn.net/xianrenli38/article/details/79347170 http://www.an ...
- mac php5.6.30与php7共存,认识Homebrew以及在Mac上同时安装PHP5及PHP7
Homebrew几乎是Mac上必备的软件,用于下载安装和管理其他软件.尤其对于程序员,讲真,本人到现在仍然不知道在Mac上如何不借助Homebrew来搭建php-apache-mysql开发环境. 认 ...
- Mac上Chrome安装 Tampermonkey插件的时候提示CRX_HEADER_INVALID
Mac上Chrome安装 Tampermonkey插件的时候提示"CRX_HEADER_INVALID" 错误提示如下: 搜到原因好像是:Chrome 73 及后续版本更改了 HE ...
- Mac上NVM 安装与使用教程
Mac上NVM 安装与使用教程 什么是NVM? 安装NVM NVM常用的命令 什么是NVM? nvm全名node.js version management,它是一种nodejs的一种版本管理工具,用 ...
- Mac上 Word安装Mendeley插件
Mac上 Word安装Mendeley插件 问题背景 解决方法 针对Mendeley Desktop 针对Mendeley Reference Manager 参考链接 问题背景 可能因如同时安装了W ...
- mac上brew安装swoole扩展,采坑之路
1.官网下载最新扩展 wget http://pear.php.net/go-pear.phar 说明:如果提醒你需要更新,则更新命令 2.开始安装 sudo pecl install swoole ...
- Mac 上如何安装Mysql?
Mac 上如何安装Mysql? Mac 安装Mysql Mysql 配置 Mac 安装Mysql 有许多开发的小伙伴,使用的是mac,那么在mac上如何安装Mysql呢?这篇文章就给大家说说. 1.首 ...
- MAC上Git安装与GitHub基本使用
目录 安装git 创建ssh key.配置git 提交本地项目到GitHub 一.安装Git MAC 上安装Git主要有两种方式 首先查看电脑是否安装Git,终端输入: git 安装过则会输出: WM ...
- mac java verbose_如何检查Mac上是否安装了Java JDK?
问题 如何检查Mac上是否安装了Java SDK? 这有命令行吗? #1 热门回答(136 赞) javac -version在一个终端上会做 #2 热门回答(44 赞) 你可以利用624461706 ...
最新文章
- matlab中显示ycbcr图像,rgb到matlab中的ycbcr转换
- 全球传媒巨头纷纷布局,VR影视内容的爆点可期
- 一个用Shell脚本写的猜丁壳游戏
- 安装cloudermanager时出现Acquiring installation lock问题(图文详解)
- rocketmq 顺序消费_10 分钟看懂消息队列 RocketMQ
- [AHOI2009]最小割(最大流+tarjan)
- linux syslog日志
- asp.net 将bmp格式图片怎么转换为jpg_PNG图片怎么转换成JPG?原来还可以这么转换...
- 多地GitHub账号使用受限;Python之父考虑重构解释器;62岁程序员埋逻辑炸弹 | 开发者周刊...
- 一、 zedboardubuntu 14.04 的前期准备(定期更新)
- 小甲鱼python电子版_零基础入门学习Python 小甲鱼出品 (全42集)
- springboot自定义starter启动器
- Layui官网文档备份, Layui文档站点,LayuiAdmin
- 小程序wxParse
- 【天线的主要技术指标及其含义-带宽 】
- kotlin-android-extensions过时了,迁移到ViewBinding
- 1,vue播放视频之—引入.m3u8后缀的hsl视频流
- [unity] build项目报错:Currently selected scripting backend (.NET)is not installed
- 计算机的储存器包括内存储器和外存储器,内存储器和外存储器的分类与区别
- 2020-01-03 KK日记,第一次进行postgresql 11.5+pgpool 安装
热门文章
- 2019年计算机专业录取分数线排名,2019中国高校录取分数线排名 全国大学录取分数线表...
- 减少计算机视觉效果可以减少游戏卡顿吗,Win10玩游戏更流畅的几招优化方法(亲测有效)...
- vi 编辑器的使用 笔记
- Vin码采集,Vin码录入
- 整理的最新版的K8S安装教程,看完还不会,请你吃瓜
- 笔记本电脑外放声音吱吱响怎么办?
- SQLite3的安装使用
- JSP网站开发之HTML入门知识及常用标记符 (一)
- .vimrc 错误 E484:打不开syntax.vim E185:Cannot find color scheme
- 百度地图天气接口api调用