ES已冻结索引查询不到,如何解决?

环境说明:ES 6.6及以上版本

Elastic Stack在 6.6 版中,发布了两个强大的功能:索引生命周期管理 (ILM) 和冻结索引

1、如何冻结 Elasticsearch 索引?

# 1、准备数据
POST /sampledata/_doc
{
    "name":"Jane",
    "lastname":"Doe"
}
POST /sampledata/_doc
{
    "name":"John",
    "lastname":"Doe"
}

# 2、合并碎片数据
POST /sampledata/_forcemerge?max_num_segments=1

# 3、冻结索引
POST /sampledata/_freeze

2、如何在kibana的Discover 中 搜索 已冻结索引的数据?

管理->Kibana->高级设置:将 search:includeFrozen 选项开启,并保存配置

3、如何用DSL搜索冻结索引?

通过向请求中添加 ignore_throttled=false

GET /sampledata/_search?ignore_throttled=false
{
 "query": {
   "match": {
     "name": "jane"
   }
 }
}

冻结的指数可能会慢一些,但可以用非常有效的方式进行预过滤。
还建议将请求参数 pre_filter_shard_size 设置为1。

GET /sampledata/_search?ignore_throttled=false&pre_filter_shard_size=1
{
 "query": {
   "match": {
     "name": "jane"
   }
 }
}

4、如何向 已冻结的 ES索引中 写入数据?

# 1、先解冻已冻结的索引
POST /sampledata/_unfreeze

# 2、再写入数据
POST /sampledata/_doc
{
 "name":"Janie",
 "lastname":"Doe"
}

# 3、检索刚插入的数据
GET /sampledata/_search
{
 "query": {
   "match": {
     "name": "janie"
   }
 }
}

5、附录

# 查询冻结索引的查询情况
GET _cat/thread_pool/search_throttled?v&h=node_name,name,active,rejected,queue,completed&s=node_name

6、参考文档

6-1、冻结索引介绍:https://www.elastic.co/cn/blog/creating-frozen-indices-with-the-elasticsearch-freeze-index-api

6-2、冻结索引API:https://www.elastic.co/guide/en/elasticsearch/reference/6.6/freeze-index-api.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值