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" } } } } }}