ElasticSearch命令大全

半兽人 发表于: 2018-05-09   最后更新时间: 2021-08-12 11:11:05  
{{totalSubscript}} 订阅, 5,115 游览

集群

# 查询集群健康状态
GET _cluster/health

# 查询所有节点
GET _cat/nodes

# 查询索引及分片的分布
GET _cat/shards

# 查询指定索引分片的分布
GET _cat/shards/order_stpprdinf_2019-12?v

# 查询所有插件
GET _cat/plugins

索引相关查询

# 查询所有索引及容量
GET _cat/indices

# 查询索引映射结构
GET my_index/_mapping

# 查询所有索引映射结构    
GET _all

# 查询所有的相同前缀索引
GET my-*/_search

# 查询所有索引模板   
GET _template

# 查询具体索引模板
GET _template/my_template

索引相关操作

1、创建索引模板

# 创建模板
PUT _template/test_hot_cold_template
{
    "index_patterns": "test_*",
    "settings": {
        "number_of_shards" : 3,
        "index.number_of_replicas": 1
     },
    "mappings": {
      "order": {
          "dynamic": false, 
          "properties": {
              "id": {"type": "long"},
              "name": {"type": "keyword"}
          }
      }    
    },
    "aliases": {
      "test": {}
    }      
}

# 根据模板创建索引并写入数据
POST test_hot_cold-2019-12-01/order
{
  "id":1,
  "name":"cwx"
}

# 删除模板
DELETE _template/order_stpprdinf_template

2、直接创建索引

PUT my_index
{
  "mappings": {
    "doc": {
      "properties": {
        "name": {
          "type": "text"
        },
        "blob": {
          "type": "binary"
        }
      }
    }
  }
}


-- 增加字段
put my_index/_mapping/doc
{
    "properties": {
      "cwxtest": {"type": "keyword"}
    }
}

-- 数据冷备份
PUT _snapshot/my_backup  # my_backup 备份的名称
{
    "type": "order", 
    "settings": {
        "location": "/mount/backups/my_backup" 
    }
}

3、写入索引

PUT my_index/doc/1
{
  "name": "Some binary blob",
  "blob": "U29tZSBiaW5hcnkgYmxvYg==" 
}

4、删除索引

DELETE my-index

5、修改索引setting

PUT /test_hot_cold-2019-12-01/_settings 
{ 
  "settings": { 
    "index.routing.allocation.require.hotwarm_type": "cold"
  } 
}

DSL query查询

--1.查询所有
GET _search
{
  "query": {
    "match_all": {}
  }
}

--2.查询单个索引 的 固定属性
--精确匹配
GET _search
{
  "query": {
    "term": { "name" : "you" }
  }
}

--模糊匹配
GET _search
{
  "query": {
    "match": { "name" : "you" }
  }
}

--范围查找
GET _search
{
  "query": {
    "range": {
        "age":{ "gte" : 15 , "lte" : 25 }
    }
  }
}
 GET indexName/_search
 {
   "query": {
     "wildcard":{"relateId":"*672499460503*"}
   }
 }


--3.功能性查询
--过滤
GET my_index/_search
{
  "query": {
    "bool": {
      "filter": {
        "term":{"age":1095}
      }
    }
  }
}

--或 or
GET my - test / _search 
{
  "query": {
    "bool": {
      "should": [{
        "term": {
          "name": "you"
        }
        }, {
        "match": {
          "age": 20
        }
      }]
    }
  }
}

--与 AND
GET my-test/_search
{
  "query": {
    "bool": {
      "must" : [{
        "match" : {
          "name" : "you"
        }
      },{
        "range":{
        "age":{
          "from" : 10 , "to" : 20
        } 
        }
      }]
    }
  }
}

--必须 =
GET my_index/_search
{
  "query": {
    "bool": {
      "must" : {
        "range" : {
          "age" : { "from" : 10, "to" : 20 }
        }
      }
    }
  }
}

--必须不 not
GET my_index/_search
{
  "query": {
    "bool": {
      "must_not" : {
        "term" : {
          "name" : "you"
        }
      }
    }
  }
}

--复合查找
GET my_index/_search 
{
"query": {
"bool": {
"should": [{
"match": {
"age": 40
}
}, 
{
"match": {
"age": 20
}
}],
"filter": {
  "match":{
    "name":"you"
  }
}
}
}
}

--4.索引迁移
--场景 从A索引 复制到B索引
POST _reindex
{
  "source": {
    "index": "my_index"
  },
  "dest": {
    "index": "new_my_index"
  }
}


--5.基于查询的删除
POST test-index/_delete_by_query
{
  "query":{
        "term": {
         "cameraId":"00000000002"
        }
  }

}

--查询
GET test-index/_search
{
  "query":{
        "term": {
         "cameraId":"00000000002"
        }
  }
}

按时间范围查询:

GET order_stpprdinf_2019-12/_search
{
  "size":10,
  "query":{
    "range":{
      "order_time":{
        "gte":"2019-12-11T00:00:00+08:00",
        "lte":"2019-12-11T23:59:59+08:00"
      } 
    }
  }
}

按条件删除:

GET order_stpprdinf_2019-12/_delete_by_query?conflicts=proceed
{
  "query":{
    "range":{
      "order_time":{
        "gte":"2019-12-11T00:00:00+08:00",
        "lte":"2019-12-11T23:59:59+08:00"
      } 
    }
  }
}

模糊匹配和范围查询

GET /_search
{
  "size":0,
  "query": {
    "bool": {
      "must": [
        {"wildcard": {
          "path": "/data/log/idcard.log*"
        }},
        {"range": {
            "@timestamp": {
            "gte": "2018-05-09",
            "lte": "2018-05-09"
        }}
      }
    ]
  }
}
}
更新于 2021-08-12
在线,2分钟前登录

小山 2年前

??

半兽人 -> 小山 2年前

sorry,我的疏忽,这就整理。

查看ElasticSearch更多相关的文章或提一个关于ElasticSearch的问题,也可以与我们一起分享文章