Laravel中使用elasticsearch实现全文搜索
项目中要做搜索,欲采用Laravel+Scout扩展 +elasticsearch来实现,特记录备用
elastic安装
- 官网下载5.6.4版本zip文件,解压到目标目录,运行需要Java1.8运行环境。
安装分词扩展ik,在elasticsearch目录下执行命令
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.4/elasticsearch-analysis-ik-5.6.4.zip
`
- 查看安装的扩展列表
`./bin/elasticsearch-plugin list `
- 启动
./bin/elasticsearch
本地访问
http://localhost:9200/?pretty
查看启动成功Laravel扩展
Laravel使用的5.4版本,使用官方Scout全文搜索扩展和针对Scout的elastic引擎laravel-scout-elastic,使用只需安装tamayo/laravel-scout-elastic,它会依赖下载Scout。
`composer require tamayo/laravel-scout-elastic `
添加服务提供者
`// config/app.php 'providers' => [ ... Laravel\Scout\ScoutServiceProvider::class, ... ScoutEngines\Elasticsearch\ElasticsearchProvider::class, ], `
生成scout配置
`php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider" `
添加Elastic引擎配置
`// config/scout.php
// Set your driver to elasticsearch'driver' => env('SCOUT_DRIVER', 'elasticsearch'), // Elastic引擎配置 'elasticsearch' => [ //elastic索引名称 'index' => env('ELASTICSEARCH_INDEX', 'laravel'), // elastic 访问地址 'hosts' => [ env('ELASTICSEARCH_HOST', 'http://localhost'), ], ],
至此前期准备配置就算完成了
Scout使用
具体Scout扩展的使用可查询文档