环境安装
ElasticSearch安装
es的安装,参考elasticsearch安装与配置介绍这篇文章
composer安装Laravel5.6
composer create-project --prefer-dist laravel/laravel laravel_es 5.6.*
安装laravel使用es的包
安装 Scout 全文搜索
文档地址: https://learnku.com/docs/laravel/5.6/scout/1417#installation
composer require laravel/scout
php artisan vendor:publish--provider="Laravel\Scout\ScoutServiceProvider"
会生成一个config/scout.php配置文件
安装Scout的es驱动
git地址: https://github.com/ErickTamayo/laravel-scout-elastic
composer require tamayo/laravel-scout-elastic
安装报错了,提示和前面安装的laravel/scout版本不兼容,然后尝试安装低版本,依然不行
既然降低Scout的es驱动版本不行,就只能降低 laravel/scout的版本了,将原来的7.1降到5.0:
1. 删除已经安装好的laravel/scout包
composer remove laravel/scout
2. 重新安装laravel/scout低版本包
composer require laravel/scout ^5.0.3
3. 安装Scout的es驱动
添加service provider
Laravel\Scout\ScoutServiceProvider::class,
ScoutEngines\Elasticsearch\ElasticsearchProvider::class,
修改配置文件
修改驱动为elasticsearch
'driver' => env('SCOUT_DRIVER', 'elasticsearch'),
定义elasticsearch驱动
'elasticsearch' => [
'index' => env('ELASTICSEARCH_INDEX', 'laravel_es_test'), //索引名,自定义
'hosts' => [
env('ELASTICSEARCH_HOST', 'http://127.0.0.1:8301'), //es的host,自己在安装es配置的地址,我这里设置的端口是8301,es默认的是9200
],
],
使用es
确保es已经启动
创建模板和创建索引
ElasticSearch的简单使用,这篇文章介绍了模板和索引的概念以及常见使用方式,可以作为参考,在文章中一系列的操作都是基于postman这个工具进行的,在laravel中有强大的command,这里就使用他
自定义命令
1. 创建command
php artisan make:command EsInit
2. 编辑handle
引入Guzzle这个PHP HTTP客户端,他可以在php中直接发送各种的http请求
composer require guzzlehttp/guzzle
handle具体实现
3. 将自定义的命令注册到laravel artisan上
\App\Console\Commands\EsInit::class,
执行 “php artisan list” 查看刚刚自定义的命令
命令创建模板和索引
在Laravel中使用es
创建模型
先建立一个文章数据表并且添加测试数据,在Laravel中可以使用migration,我这里直接使用navicat了
创建对应Model文件
修改Article的模型
向es中导入Article的数据
简单测试
添加数据
查询数据
在你的控制器总写如下查询逻辑