摘要:之前受到這篇為你的站點(diǎn)插上的翅膀的啟發(fā)就嘗試在中引入,并完成中文索引。關(guān)于中文索引谷歌上關(guān)于中文搜索的文章有很多,例如這篇。中文索引中涉及的內(nèi)容比較多,下次再用一個(gè)篇幅來(lái)分析。
如何在Lumen中使用Elasticsearch 前言
Lumen是基于Laravel核心組件的微框架,隨著Laravel5的發(fā)布,目前版本也已經(jīng)到5了。之前受到這篇為你的站點(diǎn)插上ElasticSearch的翅膀的啟發(fā), 就嘗試在lumen中引入ES,并完成中文索引。
谷歌一下“Laravel Elasticsearch”, 會(huì)發(fā)現(xiàn)很多插件,本文使用的是上面文章中提到的Fadion/Bouncy,其實(shí)各個(gè)插件都大同小異,主要功能都是ES提供的library完成的。
下載運(yùn)行Elasticsearch關(guān)于運(yùn)行就不多說(shuō)了,大家直接看官方文檔就行。
引入第三方包在lumen項(xiàng)目的composer.json中添加如下內(nèi)容
json"require": { "fadion/bouncy": "dev-l5" },
運(yùn)行composer update "fadion/bouncy", 開(kāi)始下載依賴。
把FadionBouncyBouncyServiceProvider加入到bootstrap/app.php中,如下
php$app->register(FadionBouncyBouncyServiceProvider::class);
把"fadion/bouncy"包中的config文件夾中的文件復(fù)制到自己的config文件夾中,并把config.php重命名為bouncy.php
為L(zhǎng)umen適配由于這個(gè)包是為L(zhǎng)aravel5提供的,有一些函數(shù)需要補(bǔ)充。首先打開(kāi) FadionBouncyBouncyServiceProvider這個(gè)文件,看看哪些方法需要添加。
config_path函數(shù),Lumen中沒(méi)有提供這個(gè)方法,需要自己補(bǔ)充下,非常簡(jiǎn)單的方法,記得用composer加載文件。
phpfunction config_path(){ return app()->basePath("config"); }
Lumen中加載配置文件的方式和Larvel不同,需要在AppProvidersAppServiceProvider中添加如下方法,并在register方法中調(diào)用。注意AppProvidersAppServiceProvider必須在FadionBouncyBouncyServiceProvider之前被注冊(cè)。
phpprotected function loadConfigFile(){ $this->app->configure("elasticsearch"); }
至此,Lumen已經(jīng)能夠和ES互動(dòng)了。
如何使用簡(jiǎn)單使用的話,只需要在Eloquent Model中添加一個(gè)Trait即可,請(qǐng)參照github上的文檔 或者 為你的站點(diǎn)插上ElasticSearch的翅膀文中的介紹。畢竟接下來(lái)都是ES的內(nèi)容,官方文檔一大堆,要一下完全搞清楚那些名詞也不現(xiàn)實(shí),google配合文檔是個(gè)好方法。
關(guān)于中文索引谷歌上關(guān)于ES中文搜索的文章有很多,例如這篇。文中比較了5個(gè)不同分詞插件。我挑選了smartcn和icu使用了以下,發(fā)現(xiàn)簡(jiǎn)單的詞匯是沒(méi)問(wèn)題的,但是有一些詞還是不能很好的分出來(lái),例如"谷歌",兩個(gè)插件都變?yōu)榱?谷","歌";“薪酬”在smartcn下被拆分為“薪”,“酬”,icu效果倒是很好。
關(guān)于如何精確設(shè)置索引,請(qǐng)關(guān)注ES官方文檔中的 mapping -> core type。中文索引中涉及的ES內(nèi)容比較多,下次再用一個(gè)篇幅來(lái)分析。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21035.html
摘要:在開(kāi)發(fā)中,用戶認(rèn)證是核心,是數(shù)據(jù)是否有保障的前提,目前主要有兩種常用方式進(jìn)行用戶認(rèn)證和。附是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于的開(kāi)放標(biāo)準(zhǔn)。 好久沒(méi)寫(xiě) PHP 代碼了,尤其是 Lumen,我是 Lumen 的忠實(shí)用戶,自從面世開(kāi)始,我就將 Lumen 作為我 API 的主要框架使用。 但說(shuō)到 API,不得不說(shuō)的一個(gè)概念:「前后端分離」,現(xiàn)在越來(lái)越多的團(tuán)隊(duì)都采用前后端分離,徹底解...
摘要:介紹為速度而生的框架。是官方給出的例子,直接拷貝命名為。一般來(lái)說(shuō),我們應(yīng)該避免使用末尾帶斜杠的。因?yàn)樗绻也坏轿募?,就?huì)自動(dòng)在末尾加個(gè)斜杠,嘗試尋找目錄下的文件等等,具體是在中配置。方案修改修改的配置文件,將指向重啟。 介紹 Lumen:為速度而生的 Laravel 框架。 Lumen 是 Laravel 的作者(Taylor Otwell)的又一力作。簡(jiǎn)單、快速、優(yōu)雅的它的特點(diǎn)...
摘要:本文將會(huì)告訴你如何借助中插件,在開(kāi)發(fā)微服務(wù)項(xiàng)目時(shí)項(xiàng)目和其它項(xiàng)目方法類似快速的在代碼中使用注釋來(lái)創(chuàng)建文檔。本文將會(huì)持續(xù)修正和更新,最新內(nèi)容請(qǐng)參考我的上的程序猿成長(zhǎng)計(jì)劃項(xiàng)目,歡迎,更多精彩內(nèi)容請(qǐng)??蚣芘渲梦覀兪褂卯?dāng)前最新的來(lái)演示。 showImg(https://segmentfault.com/img/remote/1460000017715535?w=1072&h=711); 作為一名...
摘要:如何做用戶認(rèn)證根據(jù)文檔描述,提供用戶認(rèn)證的接口,他的核心是看守器和提供器,看守器定義怎么認(rèn)證用戶,提供器定義怎么檢索用戶。 最近的一個(gè)PHP項(xiàng)目,上一個(gè)項(xiàng)目是采用ThinkPHP來(lái)弄的,因?yàn)楹茉缇吐?tīng)說(shuō)過(guò)Laravel的大名,所以進(jìn)了Laravel的官網(wǎng),意外發(fā)現(xiàn)了Lumen,正好我項(xiàng)目是提供API的,所以選擇了Lumen,因?yàn)槭荓aravel的精簡(jiǎn)版,看了幾天的Laravel文檔,也總...
閱讀 3569·2021-11-22 15:11
閱讀 4663·2021-11-18 13:15
閱讀 2714·2019-08-29 14:08
閱讀 3594·2019-08-26 13:49
閱讀 3107·2019-08-26 12:17
閱讀 3300·2019-08-26 11:54
閱讀 3123·2019-08-26 10:58
閱讀 2043·2019-08-26 10:21