1. 筹备测试数据,将数据下载到本地:

https://github.com/elastic/el...

数据结构:{     "account_number": 0,     "balance": 16623,     "firstname": "Bradshaw",     "lastname": "Mckenzie",     "age": 29,     "gender": "F",     "address": "244 Columbus Place",     "employer": "Euron",     "email": "bradshawmckenzie@euron.com",     "city": "Hobucken",     "state": "CO"}

2. 导入数据到es

进入到accounts.json文件的目录执行导入命令,该命令会主动创立bank索引
curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json" curl "localhost:9200/_cat/indices?v=true"

3. 查问操作

# 查问bank索引所有数据,默认显示10条GET /bank/_search# 分页查问并依据account_number降序GET /bank/_search{  "query": {    "match_all": {}  },  "sort": [    {      "account_number": {        "order": "desc"      }    }  ],  "from": 10,  "size": 1}# 查问address蕴含mill或laneGET /bank/_search{  "query": {    "match": {      "address": "mill lane"    }  }}# 仅匹配蕴含mill lane的内容GET /bank/_search{  "query": {    "match_phrase": {      "address": "mill lane"    }  }}#应用bool来结构简单查问,age为40但state不为idGET /bank/_search{  "query": {    "bool": {      "must": [        {          "match": {            "age": "40"          }        }      ],      "must_not": [        {          "match": {            "state": "ID"          }        }      ]    }  }}# 应用filter过滤数据GET /bank/_search{  "query": {    "bool": {      "must": [        {          "match_all": {}        }      ],      "filter": {        "range": {          "balance": {            "gte": 20000,            "lte": 30000          }        }      }    }  }}# 聚合查问GET /bank/_search{  "size": 0,  "aggs": {    "group_by_gender": {      "terms": {        "field": "gender.keyword"      }    }  }}#嵌套聚合查问并排序GET /bank/_search{  "size": 0,  "aggs": {    "group_by_state": {      "terms": {        "field": "city.keyword",        "order": {          "average_balance": "desc"        }      },      "aggs": {        "average_balance": {          "avg": {            "field": "balance"          }        }      }    }  }}