Elasticsearch基本操作-增删改查

创建索引

一般创建索引,我们要指定分片和复制的数量,以及指定对字段进行mapping设置,mapping设置很重要,会影响后期的查询效率。

PUT test_create_index
{
    "settings": {
        "number_of_shards": 3,  // 分片
        "number_of_replicas": 1  // 复制
    },
    "mappings": {
        "test_type":{  // 指定类型
            "properties":{  // 定义字段的mapping
                "name": {
                    "type": "keyword"
                },
                "time": {
                    "type": "date",
                    "format": "epoch_millis"
                }
            }
        }
     }    
}

增加字段,并配置mapping

// 已配置mapping的字段,一般不可修改
PUT test_create_index/_mapping/test_type
{
  "properties": {
    "padd":{
      "type":"keyword"
     }
   }
}

删除索引

DELETE  website

插入文档

// 指定文档的id,如果索引不存在,会自动重新建索引,在插入
PUT test_create_index/test_type/1
{
    "name": "lodge",
    "time": "20190627142300"
}

// 由es自动生成id,如果索引不存在,会自动重新建索引,在插入
POST test_create_index/test_type
{
    "name": "lodge1",
    "time": "20190627122300"
}

更新文档

// 更新操作原理,先查询这个文档,进行修改,删除旧文档,插入新的文档
// 如果原来没有文档存在,那么这操作伟插入操作。如果原来没有文档存在,那么这操作为替换覆盖
PUT test_create_index/test_type/1
{
    "name": "lodge2",
    "time": "20190727122300"
}

// 这个更新操作,加上_create,是不覆盖原有的文档,会抛异常409
PUT test_create_index/test_type/1/_create
{
    "name": "lodge2",
    "time": "20190727122300"
}

//  这个更新操作,加上_update,是在原有的文档上进行修改,增加字段和值
POST test_create_index/test_type/1/_update
{
    "doc": {
        "passed": "20190631"
    }
}
//  这个更新操作,加上_update,是在原有的文档上进行修改,替换字段的某个值
POST test_create_index/test_type/1/_update
{
   "script" : "ctx._source.passed='swdhkf'"
}

// 更新操作,在高并发时候,经常会遇到冲突,数据幻读的问题
// 可以采取乐观锁并发控制,使用es自带的版本号控制。更新时候发现版本号不对,会抛异常409
PUT test_create_index/test_type/1/_update?version=2
{
    "name": "lodge2",
    "time": "20190727122300"
}

删除文档

// 删除指定id的文档
DELETE test_create_index/test_type/1

查询

// 查询索引,这操作只能使用curl
curl IP地址:端口号/_cat/indices?v

// 查询指定索引的信息(settings,mappings)
GET test_create_index

// 查询索引下指定类型的mapping配置
GET test_create_index/test_type/_mapping

// 查询文档数据量
GET test_create_index/test_type/_count

// 查询指定id文档,只显示文档数据
GET test_create_index/test_type/1/_source

// 查询一条指定id文档
GET test_create_index/test_type/1

// 查询多条指定id文档
POST test_create_index/_mget
{
   "ids" : [ "AWuXm5qe5IAaRF19nMIv", "1" ]
}

// 查询所有文档
GET test_create_index/_search

参考文档:
中文版:https://es.xiaoleilu.com/index.html
英文版:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

你可能感兴趣的:(Elasticsearch基本操作-增删改查)