Java高级教程之ElasticSearch-5:ElasticSearch批量记录增加和查询

批量添加记录的接口为_bulk,需要文件account.json,使用参数--data-binary发送二进制文件数据:

curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json"

 

 

文件:

account.json

 

发送请求后,自动创建了bank的索引。返回结果中took即是使用了多长时间,其他参数是创建成功的记录数据,包括_id,result等。

 

{

"took" : 16173,

"errors" : false,

"items" : [

{

"index" : {

"_index" : "bank",

"_type" : "_doc",

"_id" : "1",

"_version" : 1,

"result" : "created",

"forced_refresh" : true,

"_shards" : {

"total" : 2,

"successful" : 2,

"failed" : 0

},

"_seq_no" : 0,

"_primary_term" : 1,

"status" : 201

}

},

{

"index" : {

"_index" : "bank",

"_type" : "_doc",

"_id" : "6",

"_version" : 1,

"result" : "created",

"forced_refresh" : true,

"_shards" : {

"total" : 2,

"successful" : 2,

"failed" : 0

},

"_seq_no" : 1,

"_primary_term" : 1,

"status" : 201

}

},

{

"index" : {

"_index" : "bank",

"_type" : "_doc",

"_id" : "13",

"_version" : 1,

"result" : "created",

"forced_refresh" : true,

"_shards" : {

"total" : 2,

"successful" : 2,

"failed" : 0

},

"_seq_no" : 2,

"_primary_term" : 1,

"status" : 201

}

},

{

"index" : {

"_index" : "bank",

"_type" : "_doc",

"_id" : "18",

"_version" : 1,

"result" : "created",

"forced_refresh" : true,

"_shards" : {

"total" : 2,

"successful" : 2,

"failed" : 0

},

"_seq_no" : 3,

"_primary_term" : 1,

"status" : 201

}

},

{

"index" : {

"_index" : "bank",

"_type" : "_doc",

"_id" : "20",

"_version" : 1,

"result" : "created",

"forced_refresh" : true,

"_shards" : {

"total" : 2,

"successful" : 2,

"failed" : 0

},

"_seq_no" : 4,

"_primary_term" : 1,

"status" : 201

}

},

{

"index" : {

"_index" : "bank",

"_type" : "_doc",

"_id" : "25",

"_version" : 1,

"result" : "created",

"forced_refresh" : true,

"_shards" : {

"total" : 2,

"successful" : 2,

"failed" : 0

},

"_seq_no" : 5,

"_primary_term" : 1,

"status" : 201

}

},

....

 

 

现在使用_search进行查询:

 

curl -X GET "localhost:9200/bank/_search?pretty" -H 'Content-Type: application/json' -d'

{

"query": { "match_all": {} },

"sort": [

{ "account_number": "asc" }

]

}

'

 

查询语句中加入了query和sort两个字段。查询的是match_all,排序以字段account_number降序。

 

 

这种请求体是ElasticSearch的特定规则。实际上是查询所有记录,但默认只返回前10条。

 

请求结果:

 

{

"took" : 2733,

"timed_out" : false,

"_shards" : {

"total" : 1,

"successful" : 1,

"skipped" : 0,

"failed" : 0

},

"hits" : {

"total" : {

"value" : 1000,

"relation" : "eq"

},

"max_score" : null,

"hits" : [

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "0",

"_score" : null,

"_source" : {

"account_number" : 0,

"balance" : 16623,

"firstname" : "Bradshaw",

"lastname" : "Mckenzie",

"age" : 29,

"gender" : "F",

"address" : "244 Columbus Place",

"employer" : "Euron",

"email" : "[email protected]",

"city" : "Hobucken",

"state" : "CO"

},

"sort" : [

0

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "1",

"_score" : null,

"_source" : {

"account_number" : 1,

"balance" : 39225,

"firstname" : "Amber",

"lastname" : "Duke",

"age" : 32,

"gender" : "M",

"address" : "880 Holmes Lane",

"employer" : "Pyrami",

"email" : "[email protected]",

"city" : "Brogan",

"state" : "IL"

},

"sort" : [

1

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "2",

"_score" : null,

"_source" : {

"account_number" : 2,

"balance" : 28838,

"firstname" : "Roberta",

"lastname" : "Bender",

"age" : 22,

"gender" : "F",

"address" : "560 Kingsway Place",

"employer" : "Chillium",

"email" : "[email protected]",

"city" : "Bennett",

"state" : "LA"

},

"sort" : [

2

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "3",

"_score" : null,

"_source" : {

"account_number" : 3,

"balance" : 44947,

"firstname" : "Levine",

"lastname" : "Burks",

"age" : 26,

"gender" : "F",

"address" : "328 Wilson Avenue",

"employer" : "Amtap",

"email" : "[email protected]",

"city" : "Cochranville",

"state" : "HI"

},

"sort" : [

3

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "4",

"_score" : null,

"_source" : {

"account_number" : 4,

"balance" : 27658,

"firstname" : "Rodriquez",

"lastname" : "Flores",

"age" : 31,

"gender" : "F",

"address" : "986 Wyckoff Avenue",

"employer" : "Tourmania",

"email" : "[email protected]",

"city" : "Eastvale",

"state" : "HI"

},

"sort" : [

4

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "5",

"_score" : null,

"_source" : {

"account_number" : 5,

"balance" : 29342,

"firstname" : "Leola",

"lastname" : "Stewart",

"age" : 30,

"gender" : "F",

"address" : "311 Elm Place",

"employer" : "Diginetic",

"email" : "[email protected]",

"city" : "Fairview",

"state" : "NJ"

},

"sort" : [

5

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "6",

"_score" : null,

"_source" : {

"account_number" : 6,

"balance" : 5686,

"firstname" : "Hattie",

"lastname" : "Bond",

"age" : 36,

"gender" : "M",

"address" : "671 Bristol Street",

"employer" : "Netagy",

"email" : "[email protected]",

"city" : "Dante",

"state" : "TN"

},

"sort" : [

6

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "7",

"_score" : null,

"_source" : {

"account_number" : 7,

"balance" : 39121,

"firstname" : "Levy",

"lastname" : "Richard",

"age" : 22,

"gender" : "M",

"address" : "820 Logan Street",

"employer" : "Teraprene",

"email" : "[email protected]",

"city" : "Shrewsbury",

"state" : "MO"

},

"sort" : [

7

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "8",

"_score" : null,

"_source" : {

"account_number" : 8,

"balance" : 48868,

"firstname" : "Jan",

"lastname" : "Burns",

"age" : 35,

"gender" : "M",

"address" : "699 Visitation Place",

"employer" : "Glasstep",

"email" : "[email protected]",

"city" : "Wakulla",

"state" : "AZ"

},

"sort" : [

8

]

},

{

"_index" : "bank",

"_type" : "_doc",

"_id" : "9",

"_score" : null,

"_source" : {

"account_number" : 9,

"balance" : 24776,

"firstname" : "Opal",

"lastname" : "Meadows",

"age" : 39,

"gender" : "M",

"address" : "963 Neptune Avenue",

"employer" : "Cedward",

"email" : "[email protected]",

"city" : "Olney",

"state" : "OH"

},

"sort" : [

9

]

}

]

}

}


 

你可能感兴趣的:(Java高级教程之ElasticSearch-5:ElasticSearch批量记录增加和查询)