摘要:使用搜索引擎,配置中文分詞,與模型關(guān)聯(lián),然后實(shí)現(xiàn)搜索的業(yè)務(wù)邏輯。
使用Elasticsearch搜索引擎,配置ik中文分詞,與Laravel模型關(guān)聯(lián),然后實(shí)現(xiàn)搜索的業(yè)務(wù)邏輯。本篇是結(jié)束篇,使用Laravel的Scout擴(kuò)展包完成搜索功能
續(xù)上篇,已經(jīng)安裝和配置好了Scout和支持Elastic的擴(kuò)展包
編輯Article模型,將LaravelScoutSearchable 這個(gè) trait加到你想要做檢索的模型,這個(gè)trait會(huì)注冊(cè)一個(gè)模型觀察者來(lái)保持模型同步到檢索服務(wù)的驅(qū)動(dòng):
$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)用方式,可以用來(lái)測(cè)試數(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)入成功后,開(kāi)始寫(xiě)搜索業(yè)務(wù)邏輯了
添加路由
Route::get("/search", "WelcomeController@search");
編輯視圖文件中的form表單,提交到路由的地址,并且input表單的name=query
編寫(xiě)控制器
public function search(Request $request) { $this->validate($request, [ "query" => "required", ]); // 轉(zhuǎn)義特殊字符 $query = str_replace("/", "/", strip_tags($request->get("query"))); // 分頁(yè),每頁(yè)10條 $articles = Article::search($query)->paginate(10); return view("welcome.search", compact("articles","query")); }
編寫(xiě)搜索展示頁(yè)面
// 展示搜索關(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/31614.html
摘要:因?yàn)榈古潘饕蚍謾C(jī)制全文檢索原理分詞原理等等,這些都是不會(huì)過(guò)時(shí)的技術(shù)。中,單個(gè)倒排索引文件稱(chēng)為。其中有一個(gè)文件,記錄了所有的信息,稱(chēng)為文檔新寫(xiě)入時(shí),會(huì)生成新的。過(guò)程上個(gè)過(guò)程中在文件系統(tǒng)緩存中,會(huì)有意外故障文檔丟失。寫(xiě)入次怕后,清空。 前言 最近 TL 分享了下 《Elasticsearch基礎(chǔ)整理》,蹭著這個(gè)機(jī)會(huì)。寫(xiě)個(gè)小文鞏固下,本文主要講 ES -> Lucene的底層結(jié)構(gòu),然后詳細(xì)...
閱讀 3146·2023-04-26 02:14
閱讀 3917·2019-08-30 15:55
閱讀 2002·2019-08-29 16:42
閱讀 2910·2019-08-26 11:55
閱讀 3012·2019-08-23 13:38
閱讀 636·2019-08-23 12:10
閱讀 1450·2019-08-23 11:44
閱讀 3140·2019-08-23 11:43