ES常用dsl语句

1、fileld_2字段存在与fileld_1字段不存在

GET  index_1/_search
{"track_total_hits": true,
"query":{
"bool": {
"must_not":[{
"exists": {
"field": "fileld_1"
}
}], "must":[{
"exists": {
"field": "fileld_2"
}
}]
}
}
}

 

2、field_1字段等于aa并且field_2在bb cc集合里

GET index_1/_search
{"track_total_hits":true,
"query": {"bool": {"must": [
{"match": {
"field_1": "aa"
}},{

"terms": {"field_2":[
"bb",
"cc"
]}

}
]}}
}

 

3、field_1字段等于aa并且field_2在2023-01-01与2023-01-31范围内

GET index_1/_search
{
"query": {"bool": {"must": [
{"match": {
"field_1": "aa"
}},{
"range": {
"field_2": {
"gte": "2023-01-01 00:00:00",
"lte": "2023-01-31 23:59:59"
}
}
}
]}}
}

 

4、

GET index_name/_search

{
"track_total_hits":true
}

可以查询总记录数,不加只能展示最多10000条

5、比较两个时间字段大小

GET  demo/_search
{"track_total_hits": true,
"query":{
"bool": {"must":[{
"exists": {
"field": "E"
}
},
{
"match": {
"A": "20230518"
}
},{
"match": {
"B": "tt"
}
},{"range": {
"C": {
"gte": "2023-01-01 09:00:00"
}
}},{
"exists": {
"field": "D"
}
}],

"filter":[{

"script": {
"script": {
"source":" doc['C'].value.toInstant().toEpochMilli() > doc['D'].value.toInstant().toEpochMilli()"
,"lang": "painless"
}
}
}]
}
}
}

 

注意 比较的两个字段要加上字段一定存在的这个条件,否则会报错(或者在source里面写if else判断)

如果是字符串字段比较相等不相等则为

"source":"doc['A'] == doc['B']"

"source":"doc['A'] != doc['B']"

6、

#查看集群统计相关信息,集群名、ES版本、节点总数、索引总数等信息

GET _cluster/stats

#查看所有节点
GET _cat/nodes
#查看主节点
GET _cat/master
#查看所有索引
GET _cat/indices
#查看别名
GET _alias
GET _cat/aliases
#查看所有索引模板
GET _cat/templates
#查看线程池
GET _cat/thread_pool

posted @ 2023-04-27 10:04  再见傅里叶  阅读(259)  评论(0编辑  收藏  举报