1.条件查询
假设students索引有以下初始数据。

#查询所有学生
GET /students/_doc/_search
{
"query":{
"match_all": {}
}
}
#查询所有学生,从1开始返回2条数据
GET /students/_doc/_search
{
"query":{
"match_all": {}
},
"from":1,
"size":2
}
#查询学号为s0003的学生
GET /students/_doc/_search
{
"query":{
"match_phrase": {
"sid": "s0003"
}
}
}
#查询姓名为'赵云'的学生
GET /students/_doc/_search
{
"query":{
"match_phrase": {
"sname": "赵"
}
}
}
#查询姓'赵'的学生
GET /students/_doc/_search
{
"query":{
"match_phrase_prefix": {
"sname": "赵"
}
}
}
或者
GET /students/_doc/_search
{
"query":{
"match": {
"sname": "赵"
}
}
}
#查询性别为'男'且姓名为'赵云'
GET /students/_doc/_search
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"gender": "男"
}
},
{
"match_phrase": {
"sname": "赵云"
}
}
]
}
}
}
#查询姓名为'赵云'或者分数是100的学生
GET /students/_doc/_search
{
"query": {
"bool":{
"should": [
{
"match_phrase": {
"sname": "赵云"
}
},
{
"match_phrase": {
"score": "100"
}
}
]
}
}
}
#按学号降序
GET /students/_doc/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"sid": {
"order": "desc"
}
}
]
}
ES的Full text queries 表见下图:

2.聚合查询
# 对成绩字段聚合查询,统计总分,最高分,最低分和平均分
GET /students/_doc/_search
{
"aggs":{
"score_statistic":{
"stats":{
"field": "score"
}
}
}
}
返回结果:
"aggregations": {
"score_statistic": {
"count": 6,
"min": 67,
"max": 100,
"avg": 85.33333333333333,
"sum": 512
}
}