摘要:使用搜索引擎,配置中文分词,与模型关联,然后实现搜索的业务逻辑。
使用Elasticsearch搜索引擎,配置ik中文分词,与Laravel模型关联,然后实现搜索的业务逻辑。本篇是结束篇,使用Laravel的Scout扩展包完成搜索功能
续上篇,已经安装和配置好了Scout和支持Elastic的扩展包
编辑Article模型,将LaravelScoutSearchable 这个 trait加到你想要做检索的模型,这个trait会注册一个模型观察者来保持模型同步到检索服务的驱动:
$this->id, "title" => $this->title, "content" => $this->content ]; } //... }
使用aritsan命令,从mysql导入现有数据到ElasticSearch
php artisan scout:import
查看一下ElasticSearch中是否存在配置的索引,和导入的数据大小
curl "localhost:9200/_cat/indices?v"
ElasticSearch的一些RESTful api调用方式,可以用来测试数据
查看索引的配置
curl -XGET "http://localhost:9200/mi360?pretty=true"
查看文档列表
curl -XGET "http://localhost:9200/mi360/_search?pretty=true"
查看指定id=10的文档
curl -XGET "http://localhost:9200/mi360/article/10?pretty=true"
ok!导入成功后,开始写搜索业务逻辑了
添加路由
Route::get("/search", "WelcomeController@search");
编辑视图文件中的form表单,提交到路由的地址,并且input表单的name=query
编写控制器
public function search(Request $request) { $this->validate($request, [ "query" => "required", ]); // 转义特殊字符 $query = str_replace("/", "/", strip_tags($request->get("query"))); // 分页,每页10条 $articles = Article::search($query)->paginate(10); return view("welcome.search", compact("articles","query")); }
编写搜索展示页面
// 展示搜索关键字和搜索到总条数// 遍历搜索的结果搜索:{{ $query }} (共搜索到{{ $articles->total() }}条)
ok!到此为止,咱们网站就添加上了全文搜索服务器了!
原文出处:http://www.mi360.cn/articles/40
相关文章:
11.Laravel全文搜索Elasticsearch (一)
12.Laravel全文搜索Elasticsearch (二)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/31614.html
摘要:因为倒排索引打分机制全文检索原理分词原理等等,这些都是不会过时的技术。中,单个倒排索引文件称为。其中有一个文件,记录了所有的信息,称为文档新写入时,会生成新的。过程上个过程中在文件系统缓存中,会有意外故障文档丢失。写入次怕后,清空。 前言 最近 TL 分享了下 《Elasticsearch基础整理》,蹭着这个机会。写个小文巩固下,本文主要讲 ES -> Lucene的底层结构,然后详细...
阅读 2842·2023-04-26 02:14
阅读 3674·2019-08-30 15:55
阅读 1778·2019-08-29 16:42
阅读 2676·2019-08-26 11:55
阅读 2769·2019-08-23 13:38
阅读 427·2019-08-23 12:10
阅读 1254·2019-08-23 11:44
阅读 2682·2019-08-23 11:43