PerlSearch::Elasticsearch模塊使用經(jīng)驗(yàn)總結(jié)-創(chuàng)新互聯(lián)

在搭建Elasticsearch數(shù)據(jù)庫的過程中,首先使用了其推薦的Logstash工具導(dǎo)入數(shù)據(jù),但是用起來非常不順手,所以想用Perl擅長的正則表達(dá)式對數(shù)據(jù)進(jìn)行過濾分類,然后導(dǎo)入Elasticsearch,于是搜索CPAN找到了Search::Elasticsearch模塊。

肅寧網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,肅寧網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為肅寧千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的肅寧做網(wǎng)站的公司定做!

該模塊在CPAN上的文檔寫的比較簡潔,于是將使用過程中的經(jīng)驗(yàn)總結(jié)如下:

一、逐條數(shù)據(jù)寫入:

use Search::Elasticsearch;
my $e=Search::Elasticsearch->new(nodes=>['localhost:9200']);
$e->index(
    index=>"$index_name",
    type=>"$type_name",
    id=>"$id_name",
    body=>{
        title=>"$data_name",
        data=>"$data"
    }
);

二、批量數(shù)據(jù)寫入:

use Search::Elasticsearch;
my $e=Search::Elasticsearch->new(nodes=>['localhost:9200']);
my $bulk=$e->bulk_helper(
    index=>"$index_name",
    type=>"$type_name"
);
my $i=0;
while(...){
    #do something
    $bulk->add_action(index=>{id=>$id_name,source=>{title =>$data_name,data=>$data}});
    if ($i>999){
        $bulk->flush;
        $i=0;
    }
    $i++;
}

三、讀取一條記錄:

use Search::Elasticsearch;
my $e=Search::Elasticsearch->new(nodes=>['localhost:9200']);
my $doc=$e->get(
    index=>"$index_name",
    type=>"$type_name",
    id=>"$id_name"
);
my $data=$doc->{_source}->{$data_name};
#do something

四、依次讀取全部記錄:

use Search::Elasticsearch;
my $e=Search::Elasticsearch->new(nodes=>['localhost:9200']);
my $scroll=$e->scroll_helper(
    index=>"$index_name",
    type=>"$type_name",
    body=>{
        query=>{match_all=>{}},
        size=>5000
    }
);
while (my $doc=$scroll->next){
    my $id=$doc->{_id};
    my $data=$doc->{_source}->{$data_name};
    #do something
}

五、跳轉(zhuǎn)到第$n條數(shù)據(jù)開始讀取

my $doc=$scroll->next($n);

六、基本數(shù)據(jù)查詢

use strict;
use Search::Elasticsearch;

my $e = Search::Elasticsearch->new(nodes => ['localhost:9200']);
my $results = $e->search(
    index => $index_name,
    body => {
        query => {
            query_string => { query => $search }
        }
    }
);
print $results->{hits}->{hits}->[0]->{_source}->{word};

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前文章:PerlSearch::Elasticsearch模塊使用經(jīng)驗(yàn)總結(jié)-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://muchs.cn/article20/dsehjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、企業(yè)建站、網(wǎng)站收錄、搜索引擎優(yōu)化全網(wǎng)營銷推廣、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司