ES->基本语法使用


ES 查询相关内容

基础变量信息

1
2
3
@host=http://127.0.0.1:9200 # ES ip 地址
@table=face # 实际表名

注 : 复制 json 注意删除注释

1、 table 操作相关

1.1、 查看表信息

查看表信息(相关配置项)

1
2
GET {{host}}/{{table}}
Content-Type: application/json

1.2、 aliases

查看所有表别名

1
2
GET {{host}}/_aliases
Content-Type: application/json

1.3、count

查看库中数据数量

1
2
GET {{host}}/{{table}}/_count
Content-Type: application/json
1
GET {{host}}/_cat/count/{{table}}?v

1.4、 indices

获取所有表的信息

1
GET {{host}}/_cat/indices

获取指定表信息

1
GET {{host}}/_cat/indices/{{table}}?v&format=json

1.5、 refresh

刷新索引
修改 ES 数据之后,不会及时刷新。故可能会调用这个
index settings 配置文件中 index.refresh_interval 来指定refresh间隔

1
GET {{host}}/{{table}}/_refresh

1.6、 获取指定表信息

获取指定表信息

1
GET {{host}}/_cat/indices/{{table}}?v&format=json

1.7、 新建表

新建表

1
2
PUT {{host}}/{{table}}
Content-Type: application/json

json

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
{
"settings": {
"index": {
"number_of_shards": 1, // 数据分片数
"max_result_window": 50000, // 最大返回数量
"max_ngram_diff": 10, // es 7.0 后需要设置该项内容
"sort.field": [
"case_time"
],
"sort.order": [
"desc"
]
}
},
"aliases": {
"tab_zfjd_alarm_result": {}
},
"mappings": {
"properties": {
"s_id": {
"type": "keyword",
"doc_values": true
},
"case_time": {
"type": "date",
"doc_values": true
},
"neglect": {
"type": "integer",
"doc_values": true
}
}
}
}

1.8、 清空表数据

清空表数据

1
{{host}}/{{table}}/_doc/_delete_by_query

json

1
2
3
4
5
{
"query": {
"match_all": {}
}
}

1.9、添加表字段

添加表字段

1
2
POST {{host}}/{{table}}/_mapping?pretty
Content-Type: application/json

json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 {
"{{table}}": {
"properties": {
"rightbtmx2": {
"type": "integer",
"index": true,
"cql_collection": "singleton"
},
"rightbtmx": {
"type": "alias",
"path": "rightbtmx2"
}
}
}
}

1.9、 删除库

删除库

1
DELETE {{host}}/{{table}}

2、 表配置相关

2.1、 线程池

线程池

1
GET {{host}}/_cat/thread_pool 

2.2、 查询设置

查询设置

1
GET {{host}}/_cluster/settings

2.3、 修改配置

修改配置

1
2
PUT {{host}}/_cluster/settings
Content-Type: application/json

json

1
2
3
4
5
{
"transient": {
"search.max_buckets": 2000000
}
}

3、 查询相关

3.1、 _doc (主键id查询)

主键id查询

1
2
GET {{host}}/{{table}}/_doc/主键id
Content-Type: application/json

3.2、 普通查询

普通查询

1
2
GET {{host}}/{{table}}/_search
Content-Type: application/json

条数查询

json

1
2
3
{
"size": 1000
}

查询单个字段

json
warn_code : 字段名
0606009 : 实际值

1
2
3
4
5
6
7
{
    "query": {
        "term": {
            "warn_code": "0606009"
        }
    }
}

查询多个字段

json
sfsc : 字段名
0 : 实际值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"query": {
"bool": {
"filter": [
{
"term": {
"sfsc": "0"
}
},
{
"term": {
"case_type": "01"
}
}
]
}
}
}

时间类查询

json
dt_create_time : 字段名
gte : 大于
lte : 小于
2020-02-13T13:13:09 : 实际时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"query": {
"bool": {
"filter": [
{
"range": {
"dt_create_time": {
"gte": "2022-01-01T00:00:00"
}
}
},
{
"range": {
"dt_create_time": {
"lte": "2022-02-23T23:59:59"
}
}
}
]
}
}
}

模糊查询

json
【wildcard】 用于分词查询
注意分词查询需要前后 + *

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
39
{
"size": 30,
"query": {
"bool": {
"filter": [
{
"term": {
"sfsc": "0"
}
},
{
"term": {
"case_type": "01"
}
},
{
"range": {
"dt_create_time": {
"gte": "2022-01-01T00:00:00"
}
}
},
{
"range": {
"dt_create_time": {
"lte": "2022-02-23T23:59:59"
}
}
}
]
}
},
"from": 0,
"sort": [ // 排序字段
{
"dt_create_time": "desc"
}
]
}

排序

json
【sort】 排序
dt_create_time : 字段名
desc : asc | 正序、倒序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"size": 30,
"query": {
"bool": {
"filter": [
{
"term": {
"sfsc": "0"
}
}
]
}
},
"from": 0,
"sort": [
{
"dt_create_time": "desc"
}
]
}

模糊分词查询

json
【match_phrase】 非分词情况下的查询
s_extends_info : 字段名
$alarmId : 实际查询内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"size": 1, // 查询一条
"query": {
"bool": {
"filter": [
{
"match_phrase": { // 特殊分词查询
"s_extends_info": "$alarmId"
}
}
]
}
}
}

3.3、 批量操作

批量操作

1
2
GET {{host}}/{{table}}/_bulk
Content-Type: application/json

json

1
2
3
4
5
6
7
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }

3.4、 特殊查询(date_histogram)

特殊查询(date_histogram)
用于查询查询 。例如统计按照每年每月,或者没小时统计
是否需要自动补 0 【min_doc_count】 配合 【extended_bounds】 使用

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
"size": 0, // 查询数量 - 特殊统计不需要
"query": {
"bool": {
"filter": [
{
"term": { // 过滤条件 + 字段
"sfsc": "0"
}
},
{
"term": { // 过滤条件
"case_type": "05"
}
},
{
"bool": {
"filter": [
{ // 过滤条件
"range": {
"dt_create_time": {
"gte": "2022-01-01T00:00:00"
}
}
},
{
"range": {
"dt_create_time": {
"lte": "2022-02-22T23:59:59"
}
}
}
]
}
}
]
}
},
"aggs": {
"dt_create_time": {
"date_histogram": { // 月份分组
"field": "dt_create_time",
"format": "yyyy-MM-dd",
"interval": "month",
"min_doc_count": 0, // 自动补 0 (无数据时补0)
"extended_bounds": { // 补 0 范围
"min": "2022-01-01",
"max": "2022-02-22"
}
}
}
}
}

4 、 分词查询

4.1 、 测试分词

测试分词

1
2
POST {{host}}/{{table}}/_analyze
Content-Type: application/json
1
2
3
4
{
"field":"whitespace", // 字段名
"text":"(30-9) and(31_6),"
}

5、 ES 备份还原数据 !!!

es 数据备份还原
TODO - 待补充