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使用相关推荐

  1. Android Studio中mac上面的安装

    Android Studio中mac上面的安装 学习了:https://blog.csdn.net/xianrenli38/article/details/79347170 http://www.an ...

  2. mac php5.6.30与php7共存,认识Homebrew以及在Mac上同时安装PHP5及PHP7

    Homebrew几乎是Mac上必备的软件,用于下载安装和管理其他软件.尤其对于程序员,讲真,本人到现在仍然不知道在Mac上如何不借助Homebrew来搭建php-apache-mysql开发环境. 认 ...

  3. Mac上Chrome安装 Tampermonkey插件的时候提示CRX_HEADER_INVALID

    Mac上Chrome安装 Tampermonkey插件的时候提示"CRX_HEADER_INVALID" 错误提示如下: 搜到原因好像是:Chrome 73 及后续版本更改了 HE ...

  4. Mac上NVM 安装与使用教程

    Mac上NVM 安装与使用教程 什么是NVM? 安装NVM NVM常用的命令 什么是NVM? nvm全名node.js version management,它是一种nodejs的一种版本管理工具,用 ...

  5. Mac上 Word安装Mendeley插件

    Mac上 Word安装Mendeley插件 问题背景 解决方法 针对Mendeley Desktop 针对Mendeley Reference Manager 参考链接 问题背景 可能因如同时安装了W ...

  6. mac上brew安装swoole扩展,采坑之路

    1.官网下载最新扩展 wget http://pear.php.net/go-pear.phar 说明:如果提醒你需要更新,则更新命令 2.开始安装 sudo pecl install swoole ...

  7. Mac 上如何安装Mysql?

    Mac 上如何安装Mysql? Mac 安装Mysql Mysql 配置 Mac 安装Mysql 有许多开发的小伙伴,使用的是mac,那么在mac上如何安装Mysql呢?这篇文章就给大家说说. 1.首 ...

  8. MAC上Git安装与GitHub基本使用

    目录 安装git 创建ssh key.配置git 提交本地项目到GitHub 一.安装Git MAC 上安装Git主要有两种方式 首先查看电脑是否安装Git,终端输入: git 安装过则会输出: WM ...

  9. mac java verbose_如何检查Mac上是否安装了Java JDK?

    问题 如何检查Mac上是否安装了Java SDK? 这有命令行吗? #1 热门回答(136 赞) javac -version在一个终端上会做 #2 热门回答(44 赞) 你可以利用624461706 ...

最新文章

  1. matlab中显示ycbcr图像,rgb到matlab中的ycbcr转换
  2. 全球传媒巨头纷纷布局,VR影视内容的爆点可期
  3. 一个用Shell脚本写的猜丁壳游戏
  4. 安装cloudermanager时出现Acquiring installation lock问题(图文详解)
  5. rocketmq 顺序消费_10 分钟看懂消息队列 RocketMQ
  6. [AHOI2009]最小割(最大流+tarjan)
  7. linux syslog日志
  8. asp.net 将bmp格式图片怎么转换为jpg_PNG图片怎么转换成JPG?原来还可以这么转换...
  9. 多地GitHub账号使用受限;Python之父考虑重构解释器;62岁程序员埋逻辑炸弹 | 开发者周刊...
  10. 一、 zedboardubuntu 14.04 的前期准备(定期更新)
  11. 小甲鱼python电子版_零基础入门学习Python 小甲鱼出品 (全42集)
  12. springboot自定义starter启动器
  13. Layui官网文档备份, Layui文档站点,LayuiAdmin
  14. 小程序wxParse
  15. 【天线的主要技术指标及其含义-带宽 】
  16. kotlin-android-extensions过时了,迁移到ViewBinding
  17. 1,vue播放视频之—引入.m3u8后缀的hsl视频流
  18. [unity] build项目报错:Currently selected scripting backend (.NET)is not installed
  19. 计算机的储存器包括内存储器和外存储器,内存储器和外存储器的分类与区别
  20. 2020-01-03 KK日记,第一次进行postgresql 11.5+pgpool 安装

热门文章

  1. 2019年计算机专业录取分数线排名,2019中国高校录取分数线排名 全国大学录取分数线表...
  2. 减少计算机视觉效果可以减少游戏卡顿吗,Win10玩游戏更流畅的几招优化方法(亲测有效)...
  3. vi 编辑器的使用 笔记
  4. Vin码采集,Vin码录入
  5. 整理的最新版的K8S安装教程,看完还不会,请你吃瓜
  6. 笔记本电脑外放声音吱吱响怎么办?
  7. SQLite3的安装使用
  8. JSP网站开发之HTML入门知识及常用标记符 (一)
  9. .vimrc 错误 E484:打不开syntax.vim E185:Cannot find color scheme
  10. 百度地图天气接口api调用