亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

為你的站點(diǎn)插上ElasticSearch的翅膀

JouyPub / 2232人閱讀

摘要:下載并安裝目前的最新穩(wěn)定版為,如果之后版本有升級(jí),請(qǐng)將相應(yīng)的版本號(hào)替換掉上面的。在實(shí)現(xiàn)的過(guò)程中,貌似對(duì)中文的支持不是那么好,所以接下來(lái)會(huì)嘗試使用一下中文分詞器來(lái)看看效果,順利的話會(huì)再出一篇文章。

  

原文來(lái)自:https://jellybool.com/post/setup-slasticsearch-on-your-website

在我的博客按Shift+S就可以呼出搜索框,可以直接體驗(yàn)一下現(xiàn)實(shí)的Demo

ElasticSearch憑借強(qiáng)大的API和不俗的搜索性能,目前在搜索引擎領(lǐng)域的勢(shì)頭貌似越來(lái)越猛了,處于興趣原因,自己就花了點(diǎn)時(shí)間將自己的博客搜索插上了ElasticSearch的翅膀。

安裝Oracle JDK
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

因?yàn)?b>ElasticSearch底層其實(shí)就是lucene,所以,需要java

  

如果以上第一行命令出現(xiàn)command not found,采取下面的解決方案,有兩個(gè)需要注意的地方:

 sudo apt-get install python-software-properties
 sudo apt-get install software-properties-common

注:如果你想安裝OpenJDK,請(qǐng)用以下命令,不過(guò)這個(gè)我并沒(méi)有親自測(cè)試過(guò)。

sudo apt-get update
sudo apt-get install openjdk-8-jre-headless -y

下載并安裝ElasticSearch
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.7.0.deb
sudo dpkg -i elasticsearch-1.7.0.deb

目前ElasticSearch的最新穩(wěn)定版為1.7.0,如果之后版本有升級(jí),請(qǐng)將相應(yīng)的版本號(hào)替換掉上面的1.7.0

你可以到這里查看:

https://www.elastic.co/downloads/elasticsearch

安裝之:

sudo dpkg -i elasticsearch-1.7.0.deb

開機(jī)自啟動(dòng),
sudo update-rc.d elasticsearch defaults 95 10

sudo /etc/init.d/elasticsearch start

測(cè)試
curl http://localhost:9200

你將看到類似以下的信息:

{
  "status" : 200,
  "version" : {
    "number" : "1.7.0",
    "build_timestamp" : "2015-07-16T14:31:07Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

這樣其實(shí)你已經(jīng)將ElasticSearch安裝成功了。

為L(zhǎng)aravel項(xiàng)目安裝相應(yīng)的ElasticSearch composer package

當(dāng)然,這些package有幾個(gè)都很不錯(cuò),而我個(gè)人使用的是Bouncy在composer.json里添加該package信息

 "require": {
        "fadion/bouncy": "dev-l5"
    }

然后執(zhí)行,composer update

添加 Service provider

來(lái)到config/app.php,在providers處添加:

"FadionBouncyBouncyServiceProvider",

最后執(zhí)行:

php artisan vendor:publish

這樣之后,你在config/目錄就會(huì)得到兩個(gè)個(gè)配置文件

config/bouncy.php
config/elasticsearch.php

第一個(gè)是關(guān)于Bouncypackage的簡(jiǎn)單配置,第二個(gè)是關(guān)于ElasticSearch的具體配置,你可以直接打開來(lái)看看,如果沒(méi)有什么必要,你可以目前保持文件不變。

安裝完之后,我們?cè)趺词褂媚??其?shí)很簡(jiǎn)單,Bouncy提供一種非常簡(jiǎn)單的方式將Laravel的Eloquent ModelElasticSearch關(guān)聯(lián)起來(lái)--就只是使用一個(gè)trait而已!比如,我需要用Article Model作為示例:

use FadionBouncyBouncyTrait;

class Article extends Eloquent {

    use BouncyTrait;

    // ...other Eloquent attributes
    // or methods.
}

沒(méi)錯(cuò),這樣就可以了。

索引所有的文章

這里我們?cè)?b>ArticleController實(shí)現(xiàn)索引所有的文章:

public function indexAllArticle()
    {
        return Article::all()->index();
    }


嗯,就是這么簡(jiǎn)單的,就像正常使用Eloquent一樣,不過(guò)是在后面多使用一個(gè)index()方法。

在這里的使用請(qǐng)確保你的ElasticSearch服務(wù)是在正常運(yùn)行期間。

而且還有一個(gè)好處就是,Bouncy在你開啟auto_index的情況下,會(huì)自動(dòng)在你創(chuàng)建和保存文件的時(shí)候自動(dòng)將文章索引了,至于更多詳細(xì)的用法,你可以查看詳細(xì)的文檔。

開啟搜索


Type something to search...

{!! Form::open(["url"=>"/search","method"=>"get"]) !!}
{!! Form::close() !!}

我們?cè)?b>blade文件中創(chuàng)建一個(gè)搜索表單,并指定表單的提交方式為GET。

設(shè)置路由
Route::get("/search","ArticleController@search");

編寫search()方法

由于我們是直接使用GET的方式來(lái)傳遞參數(shù),所以這里的示例僅是一些簡(jiǎn)單的代碼:


public function search() { if ( isset($_GET["query"]) && !empty($_GET["query"]) ) { $query = $_GET["query"]; } $params = [ "query" => [ "match" => [ "title" => $query ] ], "highlight" => [ "fields" => [ "title" => new stdClass ] ], "size" => 20 ]; $articles = Article::search($params); return view("article.search", compact("articles")); }

在這里我們只是指定了對(duì)文章的title進(jìn)行匹配,你也可以將content作為匹配域。而highlight選項(xiàng)的配置是為了在視圖中高亮匹配的內(nèi)容:

{!! $article->highlight("title") !!}

這樣,一個(gè)完整的搭建ElasticSearch的過(guò)程就完成了。

Todo

在實(shí)現(xiàn)的過(guò)程中,貌似ElasticSearch對(duì)中文的支持不是那么好,所以接下來(lái)會(huì)嘗試使用一下中文分詞器來(lái)看看效果,順利的話會(huì)再出一篇文章。

中文分詞器

Happy Hacking

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/21038.html

相關(guān)文章

  • 如何在Lumen中使用Elasticsearch

    摘要:之前受到這篇為你的站點(diǎn)插上的翅膀的啟發(fā)就嘗試在中引入,并完成中文索引。關(guān)于中文索引谷歌上關(guān)于中文搜索的文章有很多,例如這篇。中文索引中涉及的內(nèi)容比較多,下次再用一個(gè)篇幅來(lái)分析。 如何在Lumen中使用Elasticsearch 前言 Lumen是基于Laravel核心組件的微框架,隨著Laravel5的發(fā)布,目前版本也已經(jīng)到5了。之前受到這篇為你的站點(diǎn)插上ElasticSearch...

    jubincn 評(píng)論0 收藏0
  • Elasticsearch,為了搜索

    摘要:為了方便調(diào)試,可以修改文件,加入以下兩行安裝中文分詞插件原裝分詞器會(huì)簡(jiǎn)單地拆分每個(gè)漢字,沒(méi)有根據(jù)詞庫(kù)來(lái)分詞,這樣的后果就是搜索結(jié)果很可能不是你想要的。原文鏈接參考資料權(quán)威指南為你的站點(diǎn)插上的翅膀安裝中文分詞中的簡(jiǎn)介使用實(shí)現(xiàn)博客站內(nèi)搜索 Elasticsearch是一個(gè)基于Apache Lucene(TM)的開源搜索引擎。無(wú)論在開源還是專有領(lǐng)域,Lucene可以被認(rèn)為是迄今為止最先進(jìn)、...

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

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

0條評(píng)論

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