敖胤

绳锯木断,水滴石穿;聚沙成塔,集腋成裘。

导航

ElasticSearch RESTFul语法

查询

#GET请求
# 查询索引
http://ip:port/index
# 查询文档
http://ip:port/index/type/doc_id
# POST请求
# 查询文档,在请求体中传入JSON串作为查询条件
http://ip:port/index/type/_search

修改

# POST方式
# 修改文档,在请求体中传入JSON串参数
http://ip:port/index/type/_update

新增

# PUT请求
# 创建索引,在请求体中传入JSON串参数,指定索引的信息
http://ip:port/index
# 创建索引,并指定文档存储的属性的信息
http://ip:port/index/type/_mappings

删除

# DELETE操作
# 删除索引
http://ip:port/index
# 删除文档
http://ip:port/index/type/doc_id

索引操作

创建索引

# 创建一个简单的索引
PUT /demo
{
  "settings": {
    "number_of_shards": 5, 
    "number_of_replicas": 1
  }
}
# 创建一个索引,并添加type和document数据
PUT /megacorp/employee/1
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}

查看索引

# 查看索引信息
GET /demo
GET /megacorp

删除索引

# 删除一个索引
DELETE /demo

文档操作

文档在ES中通过_index_type_id三个值来唯一标识。

以给如下book索引为例:

PUT /book
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  },
  "mappings": {
    "IT":{
      "properties":{
        "name":{
          "type":"text",
          "analyzer":"ik_max_word",
          "index":true,
          "store":false
        },
        "author":{
          "type":"keyword"
        },
        "count":{
          "type":"long"
        },
        "onsale":{
          "type":"date",
          "format":"yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis"
        },
        "descr":{
          "type":"text"
        },
        "price":{
          "type":"double"
        }
      }
    }
  }
}

来进行文档操作。

新增文档

自动添加_id

自动生成id的方式使用POST请求

// 不指定id,只有index/type
POST book/IT
{
  "name":"深入理解Java虚拟机JVM(第三版)",
  "author":"周志明",
  "count":"1222222",
  "onsale":"2019-11-01",
  "descr":"一部从工作原理和工程实践两个维度深入解析JVM的著作,是计算机领域公认的经典……",
  "price":"129.50"
}

手动指定_id

手动指定id的方式使用PUT请求。

// 指定index/type/id
PUT book/IT/1
{
  "name":"Java编程思想(第四版)",
  "author":"Bruce Eckel",
  "count":"9787111213826",
  "onsale":"2007-06-01",
  "descr":"本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形……",
  "price":"62.25"
}

修改文档

覆盖式修改

与新增时的手动指定_id的方式一致,使用PUT请求,须指定想要修改的id值。

以修改上面《Java编程思想(第四版)》的字数为例:

// 指定index/type/id
PUT book/IT/1
{
  "name":"Java编程思想(第四版)",
  "author":"Bruce Eckel",
  "count":"978711121",
  "onsale":"2007-06-01",
  "descr":"本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形……",
  "price":"62.25"
}

修改完成后,版本编号变化了。

doc方式修改

采用POST请求,只会修改指定的field。

以修改上面《Java编程思想(第四版)》的作者为例:

//需要在请求后添加'_update'
POST /book/IT/1/_update
{
    // 指定修改方式为'doc'
    "doc": {
        "author":"布鲁斯·埃克尔"
    }
}

查询文档

通过_id

使用GET请求,指定要查询的id

GET book/IT/1

kibana图形界面

使用kibana图形化界面方式查询

关键字检索

删除文档

通过_id

使用DELETE请求,通过id删除一个文档。

DELETE book/IT/1

posted on 2021-07-19 22:33  敖胤  阅读(130)  评论(0编辑  收藏  举报