Elasticsearch常用基本命令

285 阅读3分钟

索引管理命令

创建索引(7.x已经不支持type了)
PUT mytestindex  //索引名称
{
  "aliases": {      //配置索引别名
    "aliases11": {}
  },
  "settings": {
    "index":{
       "number_of_shards": "2", //配置分片信息
      "number_of_replicas": "2" //配置副本数量
    }
  },
  "mappings": {      //配置mapping,不写type默认为_doc((7.x已经不支持type了)
     "properties": {  //配置某个type下的属性或者说字段
       "name":{
         "type": "text"
       },
       "age":{
         "type": "long"
       }
     }
  }
}
查看索引基本信息
GET mytestindex

判断某个索引是否存在
HEAD mytestindex

关闭索引,导致不可操作
POST mytestindex/_close

打开索引,恢复
POST mytestindex/_open

删除索引
DELETE mytestindex

压缩索引,rollover索引

mapping修改
PUT mytestindex/_mapping
{
  "properties": {
       "address":{ 
         "type": "text"  //添加一个新字段
       }
   }
}

aliases修改
POST _aliases
{
        "actions": [
            {"add": {"index": "mytestindex", "alias": "alias_name"}},
            {"add": {"remove": "mytestindex", "alias": "alias_name"}}
        ]
}

settings修改
PUT /myindex/_settings
{
  "number_of_replicas": 1
}

文档操作常用命令

插入文档
PUT /index-20210718/_doc/1
{
  "name":"wangjian",
  "age": 23,
  "address":"江西省宜春市",
  "hobby":["看书","画画","写代码"]
}
//说明:插入文档PUT方法需要指定id

POST /index-20210718/_doc
{
  "name":"wxx",
  "age": 18,
  "address":"江西省抚州市",
  "hobby":["吃","看电影"]
}
//说明:插入文档POST方法自动生成id

查询文档
GET /index-20210718/_doc/1
//说明:根据id直接查询

GET /index-20210718/_doc/1?_source=false
//说明:根据id直接查询,不显示数据部分(_source)

GET /index-20210718/_doc/1?_source_includes=name,age&_source_excludes=address
//说明:查询到的数据部分指定展示或者不展示字段

GET /index-20210718/_doc/1/_source
//说明:查询到的只要数据部分

GET index-20210718/_search?q=name:wxx OR age:23&size=1
//说明: 使用q的方式,查询参数直接放在url后面(多个参数之间用&,不要有空格,详见官网[())](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/search-uri-request.html)

GET index-20210718/_search
{
  "query": {
    "query_string": {
      "query": "name:wxx OR age:23"
    }
  },
  "size": 1
}
//说明: 使用请求体进行查询,和上面url效果一样,只是形式不同而已

GET index-20210718/_search
{
//查询参数
  "query": {
    "query_string": {
      "query": "name:wxx OR age:23"
    }
  },
  //根据某个字段折叠,相当于分组
  "collapse": {
  //分组字段
    "field": "age",
     //分组内部结果展示
     "inner_hits":{
     //分组内部结果名称
      "name":"results",
      //分组内结果大小
      "size":10,
      //分组内排序
      "sort":[{"name":"desc"}]
    }
  },
  //分页开始
   "from": 0,
   //分页大小
  "size": 1,
  //数据部分字段显示设置
  "_source": {
    "includes": ["name","age"]
  }
}
//说明: 和url支持的参数一样,有size,sort,_source等参数支持(详细参数见官网https://www.elastic.co/guide/en/elasticsearch/reference/6.0/search-request-body.html)

GET index-20210718/_count
{
"query": {
    "query_string": {
      "query": "name:wxx OR age:23"
    }
  }
}
//说明: 使用_count,来得到满足查询条件的记录数量

更新文档
POST index-20210718/_doc/1/_update
{
  "doc":{
    "address":"江西省丰城市"
  }
}
//说明:根据id更新文档内容,使用doc关键字


删除文档
DELETE /index-20210718/_doc/1
//说明:根据id删除文档

POST index-20210718/_doc/_delete_by_query
{
  "query": { 
    "match": {
      "name": "liujing"
    }
  }
}
//说明:根据查询条件进行删除(match支持分词)

POST index-20210718/_doc/_delete_by_query
{
  "query": { 
    "term": {
      "name": "liujing"
    }
  }
}
//说明:根据查询条件进行删除(term精准查询)