成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何在Lumen中使用Elasticsearch

jubincn / 2433人閱讀

摘要:之前受到這篇為你的站點(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è)不同分詞插件。我挑選了smartcnicu使用了以下,發(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

相關(guān)文章

  • 學(xué)習(xí) Lumen 用戶認(rèn)證 (一)

    摘要:在開(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ì)都采用前后端分離,徹底解...

    wangzy2019 評(píng)論0 收藏0
  • Lumen 初體驗(yàn)

    摘要:介紹為速度而生的框架。是官方給出的例子,直接拷貝命名為。一般來(lái)說(shuō),我們應(yīng)該避免使用末尾帶斜杠的。因?yàn)樗绻也坏轿募?,就?huì)自動(dòng)在末尾加個(gè)斜杠,嘗試尋找目錄下的文件等等,具體是在中配置。方案修改修改的配置文件,將指向重啟。 介紹 Lumen:為速度而生的 Laravel 框架。 Lumen 是 Laravel 的作者(Taylor Otwell)的又一力作。簡(jiǎn)單、快速、優(yōu)雅的它的特點(diǎn)...

    Leck1e 評(píng)論0 收藏0
  • Lumen微服務(wù)生成Swagger文檔

    摘要:本文將會(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); 作為一名...

    alighters 評(píng)論0 收藏0
  • Lumen用戶認(rèn)證JWT,源碼解讀

    摘要:如何做用戶認(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文檔,也總...

    AZmake 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<