目录

kibana-查询ES 的一些语法

# 前言

# 不断增补ing

# 版本 7.8.0

# 替换的关键字使用中文说明,根据需求自行替换


# 正文

# 基础知识

# 命令

-7.x中的type已经过时,默认设置为_doc

命令 url 解释
put /索引名称/类型名称/文档ID 创建文档(指定文档ID)
POST /索引名称/索引类型 创建文档(随机文档ID)
POST /索引名称/类型名称/文档id/_update 修改文档
POST /索引名称/类型名称/_search 查询数据
DELETE /索引名称/类型名称/文档id 删除文档/或者索引
GET /索引名称/类型名称/文档id 查询文档通过文档ID

# 字段类型

类型 对应类型 说明
字符串 text keyword text自动分词,keyword全文匹配
整型 byte short integer long
浮点型 float double half_float scaled_float
日期 date
布尔 boolean
二进制 binary
范围 range
数组 array
对象 object
嵌套 nested
ip ip (IPv4 和 IPv6 地址)

# 创建

PUT 索引名
1

# 创建携带mappings和settings的索引

PUT 索引名
{
 "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          # 我使用了ik分词,也可以使用其他分词器
          "type": "ik_max_word"
        },
        # 自定义分词器
        "splitByComma": {
          "type": "pattern",
          # 分词规则
          "pattern": ","
        }
      }
    }
  },
  "mappings": {
    "properties":{
      "字段名":{
        # 也可以设置为keyword
        "type":"text",
        # 如果只需要一种,就不需要添加下面的
        "fields":{
          "type":"keyword"
        },
        # 如果并不需要另外分词器,则不加这句。会使用setting中的默认分词器。
        "analyzer": "splitByComma"
      }
    }
  }
}
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

# 测试分词器

GET 索引名/_analyze
{
  # 填要使用的索引名称
  "analyzer":"ik_max_word",
  # 输入要分词的文本
  "text": "文本"
}
1
2
3
4
5
6
7

# 添加数据

POST 索引名/_doc
{
  你要添加的内容
}
1
2
3
4

# 删除索引

DELETE 索引名
1

# 查全部 match_all

GET 索引名/_search?pretty
{
  "query": {
    "match_all": {}
  }
}
1
2
3
4
5
6

# 单条件模糊查询 match

GET 索引名/_search?pretty
{
  "query": {
    "match": {
      "字段": "条件内容"
    }
  }
}
1
2
3
4
5
6
7
8

# 精确查询 term

GET 索引名/_search?pretty
{
  "query": {
    "term": {
      "字段": "条件内容"
    }
  }
}
1
2
3
4
5
6
7
8

# 单条件模糊查询 match

  • 指定查询条数,类似于sql的分页 from size
GET 索引名/_search?pretty
{
  "from": 0,
  "size": 2,
  "query": {
    "match": {
      "字段": "条件内容"
    }
  }
}
1
2
3
4
5
6
7
8
9
10

# 单条件模糊查询 match

  • 限制返回的字段 _source
GET 索引名/_search?pretty
{
  "from": 0,
  "size": 2,
  "_source": ["字段"],
  "query": {
    "match": {
      "字段": "条件内容"
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11

# 多条件模糊查询 multi_match

GET 索引名/_search?pretty
{
  "from": 0,
  "size": 2,
  "query": {
     "multi_match": {
      "fields":["字段1","字段2"],
      "query": "条件内容"
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11

# filter过滤

  • gte 大于等于
  • lte 小于等于
  • e 等于
  • bool
    • must 必须
    • should 或者
    • must_not 不等于
GET 索引名/_search?pretty
{
  "query": {
    "bool": {
      "filter": {
        "range": {
          "过滤的字段": {
            "gte": 10,
            "lte": 200
          }
        }
      }
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 聚合查询 aggs

GET 索引名/_search?pretty
{
  "size": 0,
  "query": {
   "match_all": {
   }
  },
  "aggs": {
    "聚合后返回的关键字": {
      "terms": {
        "field": "聚合字段.keyword"
      }
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 查询所有命中文档数

7.x默认只会命中10000条,如果需要跟数据库一样查询count(*)

GET qh_journal/_search
{
  "query":
  {
    "match_all":
    {

    }
  },
  "track_total_hits":true
}


1
2
3
4
5
6
7
8
9
10
11
12
13
上次更新: 2024-01-03, 13:22:13
最近更新
01
2023年度总结
01-03
02
MongoDB的简单的常用语法
12-11
03
cetnos7通过nfs共享磁盘文件
11-24
更多文章>