Elasticsearch DSL

> Elasticsearch 支持 JSON 格式的操作数据,它就是 DSL (Domain Specific Language),通过将查询的 DSL 看待成 AST (Abstract Syntax Tree),其中包括叶子查询子句(单一逻辑)及复合查询子句(组合逻辑)。


以下操作都在 Kibana Dev Tools 中进行实践。

Elasticsearch DSL


索引(Index)

创建索引

PUT materiel
{
  "settings" : {
    "number_of_shards" : 3,
    "number_of_replicas": 1
  },
  "mappings" : {
    "properties" : {
      "materiel" : { "type" : "text" },
      "description" : { "type" : "text" }
    }
  }
}

查看索引

GET materiel


更新索引

# 修改索引 Setting 中的 副本数量为 2
PUT materiel
{
  "settings" : {
    "number_of_replicas": 2
  }
}


删除索引

DELETE materiel


文档(Document)

创建文档

# 创建索引并手动指定ID,不指定时为随机生成文档ID
POST materiel/_doc/1
{
  "materiel" : "10010001",
  "description" : "橙汁"
}
# 创建索引并手动指定ID,不指定ID时会报错
PUT materiel/_doc/2
{
  "materiel" : "10010002",
  "description" : "葡萄汁"
}

查看文档

# 指定ID获取数据
materiel/_doc/1
# 获取索引全部数据
GET materiel/_search
{
  "query": {
    "match_all": {}
  }
}
# 同时 POST 方法也适用用于获取全部数据
POST materiel/_search
{
  "query": {
    "match_all": {}
  }
}

更新文档

# POST 已存在的 ID 则为更新数据,否则为创建文档
POST materiel/_doc/1
{
  "materiel" : "10010001",
  "description" : "西瓜汁"
}
# PUT 已存在的 ID 则为更新数据,否则为提示失败
PUT materiel/_doc/2
{
  "materiel" : "10010002",
  "description" : "青瓜汁"
}

删除文档

# 根据 ID 删除对应的文档
DELETE materiel/_doc/1
上一篇:Metricbeat 采集 Docker 状态


下一篇:ELK Stack & Elastic Stack