加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

Laravel使用scout集成elasticsearch做全文搜索的实现方法

发布时间:2020-05-25 02:40:46 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了Laravel使用scout集成elasticsearch做全文搜索的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文介绍了Laravel使用scout集成elasticsearch做全文搜索的实现方法,分享给大家,具体如下:

安装需要的组件


composer require tamayo/laravel-scout-elasticcomposer require laravel/scout如果composer require laravel/scout 出现报错


Using version ^6.1 for laravel/scout./composer.json has been updatedLoading composer repositories with package informationUpdating dependencies (including require-dev)Your requirements could not be resolved to an installable set of packages.Problem 1- tamayo/laravel-scout-elastic 4.0.0 requires laravel/scout ^5.0 -> satisfiable by laravel/scout[5.0.x-dev].- tamayo/laravel-scout-elastic 4.0.0 requires laravel/scout ^5.0 -> satisfiable by laravel/scout[5.0.x-dev].- tamayo/laravel-scout-elastic 4.0.0 requires laravel/scout ^5.0 -> satisfiable by laravel/scout[5.0.x-dev].- Conclusion: don't install laravel/scout 5.0.x-dev- Installation request for tamayo/laravel-scout-elastic ^4.0 -> satisfiable by tamayo/laravel-scout-elastic[4.0.0].Installation failed,reverting ./composer.json to its original content.那么使用命令


composer require laravel/scout ^5.0修改一下配置文件(config/app.php),添加如下两个provider'providers' => [//es search 加上以下内容LaravelScoutScoutServiceProvider::class,ScoutEnginesElasticsearchElasticsearchProvider::class,]添加完成,执行命令,生成config文件


php artisan vendor:publish --provider="LaravelScoutScoutServiceProvider"修改config/scout.php


'driver' => env('SCOUT_DRIVER','elasticsearch'),'elasticsearch' => ['index' => env('ELASTICSEARCH_INDEX','你的Index名字'),'hosts' => [env('ELASTICSEARCH_HOST',''),],在.env 配置ES的 账号:密码@连接


ELASTICSEARCH_HOST=elastic:密码@你的域名.com:9200创建一个生成mapping的命令行文件,到 app/Console/Commands


['elastic','Wangcai5388']]);$url = config('scout.elasticsearch.hosts')[0] . '/_template/news';$params = ['json' => ['template' => config('scout.elasticsearch.index'),'settings' => ['number_of_shards' => 5],'mappings' => ['_default_' => ['dynamic_templates' => [['strings' => ['match_mapping_type' => 'string','mapping' => ['type' => 'text','analyzer' => 'ik_smart','ignore_above' => 256,'fields' => ['keyword' => ['type' => 'keyword']]]]]]]]]];$client->put($url,$params);// 创建index$url = config('scout.elasticsearch.hosts')[0] . '/' . config('scout.elasticsearch.index');$params = ['json' => ['settings' => ['refresh_interval' => '5s','number_of_shards' => 5,'number_of_replicas' => 0],'mappings' => ['_default_' => ['_all' => ['enabled' => false]]]]];$client->put($url,$params);}}在kernel中注册这个命令



php artisan es:init修改model支持 全文搜索


hasOne(Star::class,'id','star_id');}public function category(){return $this->hasOne(Category::class,'category_id');}public static function getActivityIdByName($name){return self::select('id')->where([['status','=',1],['type_id',2],['title','like','%' . $name . '%']])->get()->pluck('id');}}导入全文索引信息


php artisan scout:import "AppActivityNewsModelActivityNews"测试简单的全文索引


php artisan tinker>>> AppActivityNewsModelActivityNews::search('略懂皮毛')->get();以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读