• 基本查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"query": {
"bool": {
"must": [
{
"match": {
"accountingMonth": "2021-09"
}
},
{
"match": {
"internalTransactions":"F"
}
}
]
}
}
}
  • 根据时间范围查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{
"query": {
"bool": {
"filter": [
{
"bool": {
"must": [
{
"bool": {
"must": [
{
"range": {
"creationDate": {
"from": "1601481600000",
"to": "1604159999000",
"include_lower": true,
"include_upper": true,
"boost": 1.0
}
}
}
]
}
}
]
}
}
]
}
},
"sort": [
{
"id": {
"order": "asc"
}
}
]
}
  • 范围查询(range)
1
2
3
4
5
6
7
8
9
10
{
"query": {
"range": {
"age": {
"gte": 8,
"lte": 30
}
}
}
}
  • wildcard 关键字: 通配符查询 ? 用来匹配一个任意字符 * 用来匹配多个任意字符
1
2
3
4
5
6
7
8
9
{
"query": {
"wildcard": {
"content": {
"value": "re*"
}
}
}
}
  • 布尔查询(bool)
1
2
3
4
bool 关键字: 用来组合多个条件实现复杂查询 boolb表达式查询
must: 相当于&& 同时成立
should: 相当于|| 成立一个就行
must_not: 相当于! 不能满足任何一个
  • 排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"query": {
"match": {
"mobile": "13122223333"
}
},
"sort": [
{
"id": {
"order": "asc"
}
}
]
}
  • 分页
1
2
3
4
{
"from": 1,
"size": 20
}
  • 查询字段存在
1
2
3
4
5
6
7
8
9
10
11
12
{
"query": {
"bool": {
"must": {
"exists": {
"field": "payClassifyCode"
}
}
}
},
"size": 100
}
  • 查询字段不存在:包含两种意思
    • 1、这条数据根本就没有这个字段
    • 2、这条数据的字段的值为null
1
2
3
4
5
6
7
8
9
10
11
12
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "payClassifyCode"
}
}
}
},
"size": 100
}
  • 查询结果返回指定字段
1
2
3
4
{
"query": { "match_all": {} },
"_source": ["name", "age"]
}
  • term 、 terms
    • term用于精确匹配
    • terms用于多词条匹配,过滤上使用没有很大区别
  • 聚合查询

avg平均值

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"avg_salary": {
"avg": {
"field": "salary"
}
}
}
}

sum 求和

1
2
3
4
5
6
7
8
9
10
{
"size": 0,
"aggs": {
"sum_salary": {
"sum": {
"field": "salary"
}
}
}
}

min, max关键字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"size": 0,
"aggs": {
"min_salary": {
"min": {
"field": "salary"
}
},
"max_salary":{
"max": {
"field": "salary"
}
}
}
}