PerlSearch::Elasticsearch模块使用经验总结-创新互联
在搭建Elasticsearch数据库的过程中,首先使用了其推荐的Logstash工具导入数据,但是用起来非常不顺手,所以想用Perl擅长的正则表达式对数据进行过滤分类,然后导入Elasticsearch,于是搜索CPAN找到了Search::Elasticsearch模块。
肃宁网站建设公司创新互联建站,肃宁网站设计制作,有大型网站制作公司丰富经验。已为肃宁千余家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的肃宁做网站的公司定做!该模块在CPAN上的文档写的比较简洁,于是将使用过程中的经验总结如下:
一、逐条数据写入:
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" } );
二、批量数据写入:
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 }
五、跳转到第$n条数据开始读取
my $doc=$scroll->next($n);
六、基本数据查询
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};
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:PerlSearch::Elasticsearch模块使用经验总结-创新互联
分享地址:http://hbruida.cn/article/dsehjo.html