摘要:使用搜索引擎,配置中文分詞,與模型關(guān)聯(lián),然后實現(xiàn)搜索的業(yè)務(wù)邏輯。
使用Elasticsearch搜索引擎,配置ik中文分詞,與Laravel模型關(guān)聯(lián),然后實現(xiàn)搜索的業(yè)務(wù)邏輯。本篇是結(jié)束篇,使用Laravel的Scout擴展包完成搜索功能
續(xù)上篇,已經(jīng)安裝和配置好了Scout和支持Elastic的擴展包
編輯Article模型,將LaravelScoutSearchable 這個 trait加到你想要做檢索的模型,這個trait會注冊一個模型觀察者來保持模型同步到檢索服務(wù)的驅(qū)動:
$this->id, "title" => $this->title, "content" => $this->content ]; } //... }
使用aritsan命令,從mysql導(dǎo)入現(xiàn)有數(shù)據(jù)到ElasticSearch
php artisan scout:import
查看一下ElasticSearch中是否存在配置的索引,和導(dǎo)入的數(shù)據(jù)大小
curl "localhost:9200/_cat/indices?v"
ElasticSearch的一些RESTful api調(diào)用方式,可以用來測試數(shù)據(jù)
查看索引的配置
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!導(dǎo)入成功后,開始寫搜索業(yè)務(wù)邏輯了
添加路由
Route::get("/search", "WelcomeController@search");
編輯視圖文件中的form表單,提交到路由的地址,并且input表單的name=query
編寫控制器
public function search(Request $request) { $this->validate($request, [ "query" => "required", ]); // 轉(zhuǎn)義特殊字符 $query = str_replace("/", "/", strip_tags($request->get("query"))); // 分頁,每頁10條 $articles = Article::search($query)->paginate(10); return view("welcome.search", compact("articles","query")); }
編寫搜索展示頁面
// 展示搜索關(guān)鍵字和搜索到總條數(shù)// 遍歷搜索的結(jié)果搜索:{{ $query }} (共搜索到{{ $articles->total() }}條)
ok!到此為止,咱們網(wǎng)站就添加上了全文搜索服務(wù)器了!
原文出處:http://www.mi#/articles/40
相關(guān)文章:
11.Laravel全文搜索Elasticsearch (一)
12.Laravel全文搜索Elasticsearch (二)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31614.html
摘要:因為倒排索引打分機制全文檢索原理分詞原理等等,這些都是不會過時的技術(shù)。中,單個倒排索引文件稱為。其中有一個文件,記錄了所有的信息,稱為文檔新寫入時,會生成新的。過程上個過程中在文件系統(tǒng)緩存中,會有意外故障文檔丟失。寫入次怕后,清空。 前言 最近 TL 分享了下 《Elasticsearch基礎(chǔ)整理》,蹭著這個機會。寫個小文鞏固下,本文主要講 ES -> Lucene的底層結(jié)構(gòu),然后詳細(xì)...
閱讀 2922·2023-04-26 02:14
閱讀 3773·2019-08-30 15:55
閱讀 1862·2019-08-29 16:42
閱讀 2773·2019-08-26 11:55
閱讀 2859·2019-08-23 13:38
閱讀 500·2019-08-23 12:10
閱讀 1322·2019-08-23 11:44
閱讀 2829·2019-08-23 11:43