ElasticSearch索引的基本操作命令

126 阅读1分钟

在这里插入图片描述

创建索引

首先,我们打开我们的kibana工具,用来执行ES的相关命令。ES的相关命令是Restful风格的,也就是PUT、GET、POST、DELETE。可以把ES想象成数据库,其中test1对应数据库名,user想象成表名,1想象成字段,当然了,在ES他们也有自己的专业属于,分别是索引/类型/文档
创建一个索引

PUT /test1/user/1
{
  "name": "爱Java的程序员",
  "age": 22
}

获取值

获取整个索引下的数据
GET /test1
获取某个文档的数据
GET /test1/user/1
获取某个文档的数据的某个字段
GET /user_index/_doc/1?_source=name
只获取文档的内容不要元数据
GET /user_index/_doc/1/_source
查询指定索引的全部信息
GET /user_index/_search
查询test_index数据并按年龄降序排序

GET /test_index/_search
{
  "query": {"match_all": {}},
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

查询test_index数据降序并分页

GET /test_index/_search
{
  "query": {"match_all": {}},
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 2
}

match分词模糊查询

GET /test_index/_search
{
  "query": {
    "match": {
      "name": "张三"
    } 
  }
}

范围查询

GET /test_index/_search
{
  "query": {
    "bool": {
      "must": { "match_all": {} },
      "filter": {
        "range": {
          "age": {
            "gte": 15,
            "lte": 25
          }
        }
      }
    }
  }
}

term精准匹配查询

GET /test_index/_search
{
    "query": {
        "term": {
            "age": "18"
        }
    }
}

查询指定前缀的文档

GET /test_index/_search
{
  "query": {
      "prefix": {
          "name": "张"
      }
  }
}

支持通配符查询

GET /test_index/_search
{
  "query": {
      "wildcard": {
          "name": "贺*"
      }
  }
}

match在匹配时会对所查找的关键词进行分词,然后按分词匹配查找,而term会直接对关键词进行查找。一般模糊查找使用match,而精确查找使用term

修改值

修改年龄为21

POST /test1/user/1/_update
{
  "doc": {
    "age": 21
  }
}

删除值

删除文档1
DELETE /test1/user/1
删除索引test1
DELETE /test1