一、安装
终端执行命令,全局安装 elasticsearch
,命令如下:
brew install elasticsearch
过程中,你会看到一个报错信息,说你没有安装Java
的JDK
, 而且版本必须是1.8以上的,根据提示命令安装即可。
brew cask install homebrew/cask-versions/java8
安装完后,执行命令查看版本信息:java -version
然后通过brew services start elasticsearch
启动服务即可。
二、创建测试项目
1、本地终端执行命令:laravel new blog
,创建一个新项目,配置虚拟机正常访问。
2、修改路由web.php
,代码如下:
Route::get('/', 'HomeController@index');
3、创建对应控制器和方法,执行命令:php artisan make:controller HomeController
4、.env
文件中配置数据库,并创建数据库,并在表中插入数据。
5、创建模型:php artisan make:model Art
6、在HomeController
控制器的index
方法中写入如下代码:
return Art::search('天')->get();
记得上面 use App\Art;
三、配置elasticsearch
1、终端进入当前项目文件夹,执行命令:composer require tamayo/laravel-scout-elastic
2、接着创建配置文件:php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
3、修改配置文件信息:
'driver' => env('SCOUT_DRIVER', 'elasticsearch'),
'elasticsearch' => [
'index' => env('ELASTICSEARCH_INDEX', 'laravel'),
'hosts' => [
env('ELASTICSEARCH_HOST', 'http://localhost'),
],
],
当然,这些配置信息也可以配置到 .env
文件中。
4、修改Art
模型代码如下:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;
class Art extends Model
{
use Searchable;
}
5、导入索引:php artisan scout:import "App\Art"
6、测试1,基于以上操作,我们来刷新浏览器,你会看到奇迹已诞生:
测试2,修改控制器代码如下
return Art::search('今天')->get();
结果如下:
至此,全文搜索已实现。还有一些其他操作,比如查询、分页等,可以参考Laravel
官方文档。接下来就是运用到真实的项目中去,后续完善。
参考文献:
https://laravelacademy.org/post/9599.html
https://github.com/ErickTamayo/laravel-scout-elastic