Laravel 结合Elasticsearch 实现全文搜索

16 篇文章 0 订阅

一、安装

终端执行命令,全局安装 elasticsearch,命令如下:

brew install elasticsearch

过程中,你会看到一个报错信息,说你没有安装JavaJDK, 而且版本必须是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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值