需求:只查不需要更新,删除,添加操作,因为添加通过es的filebeat或logstash中间件完成,日志性数据更是不会删除和更新,一致在不停积累,增加,海量的数据;
1,在https://packagist.org/包管理库中搜elasticsearch关键词,按照排名,找到一个basemkhirat/elasticsearch,排名比较考前;用composer一步完成:$ composer require basemkhirat/elasticsearch
2,和大多的elasticsearch一样,这个插件也是基于laravel的scout这个检索工具完成。关于scout可查看:https://learnku.com/docs/laravel/7.x/scout/7516#ec6819 (若有必要可以详细读一遍)默认的驱动并不是es,我们更换成上面安装的那个插件即可,
3,再发一个basemkhirat/elasticsearch比较详细的使用方法,参考地址:https://github.com/babenkoivan/scout-elasticsearch-driver
4,lumen为了快,精简了很多功能,很多命令的用不了的,那些命令都是自动化完成一些工作,这些工作完全可以手工完成;
比如:配置文件,一共2个,一个scout的配置文件:scout.php文件,可以在/vendor/laravel/scout/config/scout.php 找到;复制到/config中,改成自己的配置;需要自己配置的请在.env文件中自定义设置;一个elasticsearch配置文件;同样在/vendor/basemkhirat/scout-elasticsearch-driver/config中,复制到/config中,修改自己的配置;
在/bootstrap/app.php中增加服务提供者:
$app->register(Laravel\Scout\ScoutServiceProvider::class);//scout全文检索
$app->register(ScoutElastic\ScoutElasticServiceProvider::class);//用elasetic驱动scout检索
5,新建一个model类和一个检索配置类,我都写到了一个文件中,位置在:/app/models/;名字随便写一个,可以按照es的检索名创建;
我的model类叫EsDeviceIndex;配置类叫EsIndexConfigurator;都在一个文件中,文件名叫EsDeviceIndex.php
<?php
/**
* Created by PhpStorm.
* User: fangliang
* Date: 2021/4/27
* Time: 5:36 PM
*/
namespace App\Models;
use ScoutElastic\Searchable;
use ScoutElastic\IndexConfigurator;
use Illuminate\Database\Eloquent\Model;
class EsDeviceIndex extends Model
{
use Searchable;
//检索配置类,在下面,基本复制官网
protected $indexConfigurator = EsIndexConfigurator: