Index API:
index API 增加或者更新一个JSON文档 在一个指定的index,让它可以搜索。
下面的例子插入JSON 文档到"twitter" index,在一个称谓tweet的类型和 id为1
PUT twitter/tweet/1
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
响应信息:
{
"_index": "twitter",
"_type": "tweet",
"_id": "1",
"_version": 1,
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}
##发送消息
use LWP::UserAgent;
use LWP;
use Encode;
use LWP::Simple;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Response;
use Encode;
use URI::Escape;
use URI::URL;
use JSON;
use Data::Dumper;
my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");
my $cookie_jar = HTTP::Cookies->new(
file=>'lwp_cookies.txt',
autosave=>1,
ignore_discard=>1);
$ua->cookie_jar($cookie_jar);
my $login_url ="http://192.168.137.2:9200/twitter/tweet/1";
my $post = {
"user" => "kimchy",
"post_date" => "2009-11-15T14:12:12",
"message" => "trying out Elasticsearch"
} ;
use JSON qw(encode_json);
$json_string = encode_json($post);
my $req = HTTP::Request->new(
'PUT' => $login_url
);
$req->content_type('application/json; charset=UTF-8')
; #post请求,如果有发送参数,必须要有这句
$req->content("$json_string"); #发送post的参数
my $res = $ua->request($req);
print $res->content(); #获取的是响应正文
$r = HTTP::Request->new( $method, $uri )
$r->method( $val )
This is used to get/set the method attribute. The method should be a short string like "GET", "HEAD", "PUT" or "POST".
require HTTP::Request;
$request = HTTP::Request->new(GET => 'http://www.example.com/');
C:UsersTLCBDesktopelkElasticsearch Api>perl put_json_create_indx_1.pl
{"_index":"twitter","_type":"tweet","_id":"1","_version":1,"_shards":{"total":2,
"successful":1,"failed":0},"created":true}