当前位置: 首页 > 后端技术 > PHP

12、Laravel全文搜索Elasticsearch(三)

时间:2023-03-29 15:32:12 PHP

使用Elasticsearch搜索引擎,配置ik中文分词,关联Laravel模型,然后实现搜索的业务逻辑。本文到此结束。使用Laravel的Scout扩展包完成搜索功能,继续上一篇。您已经安装并配置了Scout和Elastic扩展包来编辑Article模型。将LaravelScoutSearchable特性添加到您要搜索的模型中。这个特征会注册一个模型观察者来保持模型与搜索服务的驱动同步:$this->id,'title'=>$this->title,'content'=>$this->content];}//...}使用aritsan命令将已有数据从mysql导入ElasticSearchphpartisanscout:import查看ElasticSearch中是否有配置的索引以及导入数据的大小curl'localhost:9200/_cat/indices?v'ElasticSearch的一些RESTfulapi调用方法可以用来测试数据和查看索引配置curl-XGET"http://localhost:9200/mi?pretty=true"查看文档列表curl-XGET"http://localhost:9200/mi360/_search?pretty=true"查看指定id=的文档10curl-XGET"http://localhost:9200/mi360/article/10?pretty=true"ok!导入成功后,开始写搜索业务逻辑。添加路由Route::get('/search','WelcomeController@search');编辑表单中查看文件并提交到路由的地址,并输入名称form=querySearch编写控制器公共函数search(Request$request){$this->validate($request,['query'=>'required',]);//转义特殊字符$query=str_replace('/','\/',strip_tags($request->get('query')));//分页,每页10条$articles=Article::search($query)->paginate(10);returnview('welcome.search',compact('articles','query'));}写一个搜索展示页面//显示搜索关键词和搜索结果文章数搜索:{{$query}}(总共搜索了{{$articles->total())}}article)

//遍历搜索结果@foreach($articlesas$article)$article->id])}}">{{$article->title}}
  • ?$article->user->id,'name'=>$article->user->name])}}">{{$article->user->name}}
  • ?{{date('Y-m-d',strtotime($article->created_at))}}
  • ?<ahref="{{route('articles.index',['category'=>$article->category->name])}}">{{$article->category->name}}
  • ?@foreach($article->tagsas$tag)$tag->name])}}">{{$tag->name}}@endforeach
  • $article->id])}}">pic}}"alt="{{$article->title}}"title="{{$article->title}}">{{$article->intro}}
    $article->id])}}">阅读全文@endforeach//显示分页代码{{$articles->链接()}}好的!至此,我们的网站已经添加了全文搜索服务器!原文出处:http://www.mi.cn/articles/40相关文章:11.Laravel全文搜索Elasticsearch(一)12.Laravel全文搜索Elasticsearch(二)