摘要:使用搜索引擎,配置中文分詞,與模型關聯,然后實現搜索的業務邏輯。
使用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 (二)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31614.html
摘要:因為倒排索引打分機制全文檢索原理分詞原理等等,這些都是不會過時的技術。中,單個倒排索引文件稱為。其中有一個文件,記錄了所有的信息,稱為文檔新寫入時,會生成新的。過程上個過程中在文件系統緩存中,會有意外故障文檔丟失。寫入次怕后,清空。 前言 最近 TL 分享了下 《Elasticsearch基礎整理》,蹭著這個機會。寫個小文鞏固下,本文主要講 ES -> Lucene的底層結構,然后詳細...
閱讀 2910·2023-04-26 02:14
閱讀 3760·2019-08-30 15:55
閱讀 1848·2019-08-29 16:42
閱讀 2763·2019-08-26 11:55
閱讀 2851·2019-08-23 13:38
閱讀 489·2019-08-23 12:10
閱讀 1317·2019-08-23 11:44
閱讀 2809·2019-08-23 11:43