目录

elasticsearch学习五文档CRUD

elasticsearch学习(五)文档CRUD

上一篇文章

elasticsearch学习(四)kibana安装

文档CRUD

创建索引

PUT /my-index
{
    "mappings": {
        "properties": {
                "testFieldA": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                },
                "testFieldB": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                }
            }
    }
}

mapping的部分不是必须的,可以通过先创建索引,然后写入数据的方式自动生成mapping

查看索引字段mapping

GET /my-index/_mapping

{
  "my-index": {
    "mappings": {
      "properties": {
        "testFieldA": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "testFieldB": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
  }
}

更新mapping

POST  /my-index/_mapping
{
    "properties": {
        "testFieldC": {
            "type": "text",
            "fields": {
                "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                }
            }
        },
        "testFieldB": {
            "type": "text",
            "fields": {
                "keyword": {
                    "type": "keyword",
                    "ignore_above": 512
                }
            }
        }
    }
}

只能新增和更新字段,不能删除字段,删除字段用reindex

删除索引

DELETE /my-index

测试索引是否存在

HEAD /my-index

查看索引字段结构

GET /my-index/_mapping

删除索引

DELETE /my-index

文档命令

创建文档

Index

如果ID不存在,则创建新的,否则删除旧的再创建新的,增加版本号

POST /my-index/_doc
{
    "id": "park_rocky-mountain",
    "title": "Rocky Mountain",
    "description": "Bisected north to south by the Continental Divide, this portion of the Rockies has ecosystems varying from over 150 riparian lakes to montane and subalpine forests to treeless alpine tundra."
}

Create

// 不指定ID(系统自动生成)
POST /my-index/_doc
{
    "testFieldA":"testA1",
    "testFieldB":"testB1"
}

// 指定ID
POST /my-index/_doc/2
{
    "testFieldA":"testA2",
    "testFieldB":"testB2"
}
Create与Index的区别

create的文档ID如果已存在,会报失败
index的文档ID不存在,会新建,否则会把原来的删除了再增加

更新文档

POST /my-index/_update/2
{
    "doc":{
        "testFieldA":"updateTestA2"
    } 
}

删除文档

DELETE /my-index/_doc/2

查询文档

支持两种方式:
1 url查询,在url路径中使用查询参数
2 用DSL(Query Domain Specific Language)

简单查询语法

api作用
/_search查询集群上所有索引
/{index_name}/_search查询指定索引
/{index_name1},{index_name2},{…}/_search查询多个指定索引
/{index_prex}*/_search查询以{index_prex}为开头的索引
// 指定ID查询
GET /my-index/_doc/2

// 查询全量数据
GET /my-index/_search

// 查询my开头的索引数据
GET /my*/_search

// URL查询
GET /my-index/_search?q=testFieldA:updateTestA2

// DSL查询
GET /my-index/_search -H 'Content-Type:application/json' -d
{
    "query":{
        "match":{"testFieldA":"updateTestA2"}
    }
}