首页 > 代码库 > Perl Search::Elasticsearch模块使用经验总结
Perl Search::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=http://www.mamicode.com/>"$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=http://www.mamicode.com/>$data}});>
三、读取一条记录:
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=http://www.mamicode.com/$doc->{_source}->{$data_name};>
四、依次读取全部记录:
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=http://www.mamicode.com/$doc->{_source}->{$data_name};>
本文出自 “如意灵临” 博客,请务必保留此出处http://417722381.blog.51cto.com/7856838/1880794
Perl Search::Elasticsearch模块使用经验总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。