Toggle navigation
菜菜小站
菜菜小站
前端开发
前端开发
前端基础
bootstrap
JavaScript
微信小程序
后端开发
后端开发
php开发
laravel
数据库
编辑器
git
微信开发
服务器
服务器
https
cos云存储
ubuntu
homestead
go
ContactMe
laravel5.4 配置elasticsearch搜索引擎
作者:
菜菜子
|
时间:2017-06-01 07:31:00 |
分类:
php开发
,
后端开发
,
laravel
|
访问: 2,316 次|
评论:
0 评论
## 下载文件 [点击下载elasticsearch5.4](https://cos.cc430.cn/2017/06/01/es.rar "下载地址") >内置ik分词 ## 将elasticsearch引擎打开 使用cmd命令行进入elasticsearch5.4根目录的bin目录下,输入 >elasticsearch.bat 等待一段时间,开启会比较慢,然后在浏览器url栏中输入localhost:9200,看是否能够访问,能够访问则表示开启elasticsearch成功 >注意需要java环境,有2g以上闲置内存,适合千万量级别以上数据量的搜索 ## 在composer.json的require下添加如下语句 >"tamayo/laravel-scout-elastic": "^3.0" 执行下列命令,下载配置文件 >composer update ## 在config/app.php中进行配置 添加下列语句到providers中 > Laravel\Scout\ScoutServiceProvider::class, > ScoutEngines\Elasticsearch\ElasticsearchProvider::class, ## publish配置文档到config目录下 >php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider" 现在config目录下应该会出现scout.php配置文件 ## 在config/scout.php中按如下进行配置 修改driver为elasticsearch > 'driver' => env('SCOUT_DRIVER', 'elasticsearch'), 添加elasticsearch配置,索引设置为index,elasticsearch引擎请求地址设置为默认的9200端口 ```php 'elasticsearch' => [ 'index' => env('ELASTICSEARCH_INDEX', 'index'), 'hosts' => [ env('ELASTICSEARCH_HOST', 'http://localhost:9200'), ], ], ``` ## 在需要索引的表(模型)中进行配置,如products表 ```php $this->product_name, 'description' => $this->description ]; } /** * The elasticsearch settings. * * @var array */ protected $indexSettings = [ 'analysis' => [ 'char_filter' => [ 'replace' => [ 'type' => 'mapping', 'mappings' => [ '&=> and ' ], ], ], 'filter' => [ 'word_delimiter' => [ 'type' => 'word_delimiter', 'split_on_numerics' => false, 'split_on_case_change' => true, 'generate_word_parts' => true, 'generate_number_parts' => true, 'catenate_all' => true, 'preserve_original' => true, 'catenate_numbers' => true, ] ], //这个下面应该是设置分词,但是不知道怎么写,先这样吧 'analyzer' => [ 'default' => [ 'type' => 'custom', 'char_filter' => [ 'html_strip', 'replace', ], 'tokenizer' => 'whitespace', 'filter' => [ 'lowercase', 'word_delimiter', ], ], ], ], ]; } ``` ## 存储表中数据到elasticsearch中 >php artisan scout:import "App\Product" 有的可能会因为引号的问题无法使用,想我就不能使用带引号的 >php artisan scout:import App\Product ## 从elasticsearch清除表数据 >php artisan scout:flush "App\Product" 有的可能会因为引号的问题无法使用,想我就不能使用带引号的 >php artisan scout:flush App\Product ## 控制器 查询的控制器 ```php public function search(Request $request) { if ($request->get('query')) { $query = $request->input('query'); $products = Product::search($query)->paginate(18); return view('product/search')->withProducts($products)->withSections(Section::paginate(6)); } else { return redirect()->back(); } } ``` ## 修改vendor目录下的一个配置的错误 要支持中文分词的话还得改一个文件 文件地址如下 >document_root\vendor\tamayo\laravel-scout-elastic\src\ElasticsearchEngine.php 该文件中的performSearch()方法中 如果正常看到的话是如下所示 'must' => [['query_string' => [ 'query' => "*{$builder->query}*"]]] 将其改成如下 'must' => [['query_string' => [ 'query' => "{$builder->query}"]]] 去掉*号 >参考文档2 ## 查看ik分词的方法: 使用ik_max_word模式,最大化分词结果 在浏览器中输入(开启elasticsearch下) >http://localhost:9200/index/_analyze?analyzer=ik_max_word&text=我明天要出去 使用ik_smart模式,最小化分词结果 在浏览器中输入(开启elasticsearch下) >http://localhost:9200/index/_analyze?analyzer=ik_smart&text=我明天要出去 ## 参考文档 >参考文档1:[https://github.com/ErickTamayo/laravel-scout-elastic](https://github.com/ErickTamayo/laravel-scout-elastic) >参考文档2:[https://elasticsearch.cn/question/228](https://elasticsearch.cn/question/228) >参考文档3:[https://laravel.com/docs/5.4/scout](https://laravel.com/docs/5.4/scout)
标签:
laravel5
,
elasticsearch
还不快抢沙发
添加新评论
昵称(必填)
邮箱(必填)
网站(选填)
内容(必填)
提交评论
最新文章
部署go项目
lumen多个项目共用代码
lumen >=5.8中使用pusher广播
nginx负载均衡配置(二)
nginx负载均衡配置(一)
laravel中redis发布订阅相关问题处理
mysql 主从备份(一)
最新回复
DeWjjj: 兄弟很好使,奥力给!
懒猫爱伸腰: 大佬,问题我解决了,就加了一行代码 把ap-nanj...
懒猫爱伸腰: 大佬,啥会儿更新一下,现在又南京的桶了。。。。。
菜菜子: https://laravel-admin.org/d...
庆: laravel-admin 中图片上传如何限制图片尺寸...
惹我: 123
zhwangart: 感谢作者分享,这个问题简直烦死个人!终于解决~
世界和平: 大佬,可以加一个压缩图片后再上传到OSS的功能吗?我看...
拾一: 大部分文件上传都是转圈圈。。一直提示不成功
时年: 好了好了,多谢
标签
bootstrap
前端框架
laravel5
laravel
laravel-admin
gd库
微信小程序
表单
https
git
mysql
wamp配置
ajax
cos小工具
cos
cos插件
微信支付
swoole
redis
邮件发送
腾讯云
sql语言
jwt
typecho
数组
破解
编辑器
ubuntu
elasticsearch
vue
homestead
linux
websocket
nginx
docker
负载均衡
标签
刷新
加密处理
验证码
悬浮框
权限控制
markdown
shell
ui
任务调度
定时任务
deployer
gogs
反向代理
go
ftp
测试
分页
队列
微信公众号
日志
wnmp
vagrant
无限极分类
分销
集合
supervisor
部署
grid
python
chunk
api管理工具
oss
缓存
pusher
laravel-push
归档
2020年11月
2020年07月
2020年05月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年03月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2017年09月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
友情链接
空
//