请求体方式请求elasticsearch

下面是使用使用请求body 方法:

GET /test/_search
{
  "query": { "match_all": {} },
  "sort": [
    { "account_number": "asc" }
     
  ],
  "fields":  [ "account_number", "firstname", "lastname" ]
}






{
  "took": 4,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 6,
    "max_score": null,
    "hits": [
      {
        "_index": "test",
        "_type": "account",
        "_id": "1",
        "_score": null,
        "fields": {
          "account_number": [
            1
          ],
          "firstname": [
            "Amber"
          ],
          "lastname": [
            "Duke"
          ]
        },
        "sort": [
          1
        ]
      },
      {
        "_index": "test",
        "_type": "account",
        "_id": "6",
        "_score": null,
        "fields": {
          "account_number": [
            6
          ],
          "firstname": [
            "Hattie"
          ],
          "lastname": [
            "Bond"
          ]
        },
        "sort": [
          6
        ]
      },
      {
        "_index": "test",
        "_type": "account",
        "_id": "13",
        "_score": null,
        "fields": {
          "account_number": [
            13
          ],
          "firstname": [
            "Nanette"
          ],
          "lastname": [
            "Bates"
          ]
        },
        "sort": [
          13
        ]
      },
      {
        "_index": "test",
        "_type": "account",
        "_id": "18",
        "_score": null,
        "fields": {
          "account_number": [
            18
          ],
          "firstname": [
            "Dale"
          ],
          "lastname": [
            "Adams"
          ]
        },
        "sort": [
          18
        ]
      },
      {
        "_index": "test",
        "_type": "account",
        "_id": "20",
        "_score": null,
        "fields": {
          "account_number": [
            20
          ],
          "firstname": [
            "Elinor"
          ],
          "lastname": [
            "Ratliff"
          ]
        },
        "sort": [
          20
        ]
      },
      {
        "_index": "test",
        "_type": "account",
        "_id": "99",
        "_score": null,
        "fields": {
          "account_number": [
            99
          ],
          "firstname": [
            "Amber"
          ],
          "lastname": [
            "Duke"
          ]
        },
        "sort": [
          99
        ]
      }
    ]
  }
}

利用perl 实现:

[elk@node01 api]$ cat a10.pl 
##发送消息
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/test/_search";  
   my $post ={
  "query" => { "match_all" => {} },
  "sort" => [
    { "account_number" => "asc" }
     
  ],
  "fields" =>  [ "account_number", "firstname", "lastname" ]
};

        
    
    use JSON qw(encode_json);  
    $json_string = encode_json($post);  
  
    my $req = HTTP::Request->new(  
        'POST' => $login_url
    );  
    $req->content_type('application/json; charset=UTF-8')  
      ;    #post请求,如果有发送参数,必须要有这句  
    $req->content("$json_string");    #发送post的参数  
    my $res = $ua->request($req);  
    print $res->content()."
";            #获取的是响应正文  

	
	{"took":5,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":6,"max_score":null,
	"hits":[{"_index":"test","_type":"account","_id":"1","_score":null,
	"fields":{"account_number":[1],"firstname":["Amber"],"lastname":["Duke"]},"sort":[1]},
	{"_index":"test","_type":"account","_id":"6","_score":null,
	"fields":{"account_number":[6],"firstname":["Hattie"],"lastname":["Bond"]},"sort":[6]},
	{"_index":"test","_type":"account","_id":"13","_score":null,
	"fields":{"account_number":[13],"firstname":["Nanette"],"lastname":["Bates"]},"sort":[13]},
	{"_index":"test","_type":"account","_id":"18","_score":null,"fields":{"account_number":[18],
	"firstname":["Dale"],"lastname":["Adams"]},"sort":[18]},{"_index":"test","_type":"account","_id":"20","_score":null,
	"fields":{"account_number":[20],"firstname":["Elinor"],"lastname":["Ratliff"]},"sort":[20]},
	{"_index":"test","_type":"account","_id":"99","_score":null,"fields":{"account_number":[99],
	"firstname":["Amber"],"lastname":["Duke"]},"sort":[99]}]}}

原文地址:https://www.cnblogs.com/hzcya1995/p/13349689.html