如何快捷的判断一批索引中不存在的或 close 的索引
来源:互联网 发布:c语言画线函数 编辑:程序博客网 时间:2024/06/08 18:15
Elasticsearch查询多个索引时,如果其中某个索引不存在或close,则该查询直接返回 ”404 索引丢失“ 错误
如:
GET /ocslog-2016.08.03,ocslog-2016.08.04,ocslog-2016.08.05,ocslog-2016.08.06/_search
假如:ocslog-2016.08.03不存在,则将直接返回:
{ "error": "IndexMissingException[[ocslog-2016.08.03] missing]", "status": 404}
这时,可以先调用下面这个api,检查索引是否存在
GET /ocslog-2016.08.03,ocslog-2016.08.04,ocslog-2016.08.05,ocslog-2016.08.06/_alias
返回:
{ "ocslog-2016.08.05": { "aliases": {} }, "ocslog-2016.08.06": { "aliases": {} }, "ocslog-2016.08.04": { "aliases": {} }}
说明:存在三个索引
再次执行:
GET /ocslog-2016.08.04,ocslog-2016.08.05,ocslog-2016.08.06/_search
如果,这三个索引中 ocslog-2016.08.04 索引是close状态的,将返回:
{
“error”: “IndexClosedException[[ocslog-2016.08.04] closed]”,
“status”: 403
}
这时,可以再调用下面的api,检查索引的状态
GET /_cat/indices/ocslog-2016.08.04,ocslog-2016.08.05,cdr-2015-02-26?v
返回:
health status index pri rep docs.count docs.deleted store.size pri.store.size green open ocslog-2016.08.05 1 1 2 0 17.2kb 8.6kb green open ocslog-2016.08.06 1 1 13 0 25.3kb 12.6kb close ocslog-2016.08.04
分析下这个返回结果,可以过滤掉 close 的索引
最后得到二个可以正确 _search 的索引:
GET /ocslog-2016.08.05,ocslog-2016.08.06/_search
正常查询出结果
其实 kibana 的查询就是这样处理的,不过kibana没有过滤 close 的索引,如果查询索引中有 close 状态的索引,将返回失败,查询不到任何结果
0 0
- 如何快捷的判断一批索引中不存在的或 close 的索引
- 数据库索引-建立索引的判断标准
- mysql中index的如何使用,判断什么时候加索引(强烈推荐)
- Oracle中加速索引创建或重建的方法
- [TROUBLESHOOTING]奇怪的【索引中丢失 IN 或 OUT 参数】
- 在SQL 2008中无法删除索引的办法,提示服务器上不存在源文件
- mysql中,索引,主键,唯一索引,联合索引的区别
- mysql中,索引,主键,唯一索引,联合索引的区别
- 如何创建合适的索引
- 如何创建合适的索引
- 如何创建合适的索引
- 如何查看索引的大小
- 如何科学的创建索引
- 如何更好的创建索引
- 如何抑制索引的使用
- 在全文索引建立的目录不存在情况下删除全文索引
- 在全文索引建立的目录不存在情况下删除全文索引
- 在全文索引建立的目录不存在情况下删除全文索引
- android studio 常用快捷键
- GOF之解释器模式
- C++学习笔记——erase删除字符串中特定字符 由leetcode383题想到的
- dojox.widget.rotator.Controller
- HDU 5773 The All-purpose Zero
- 如何快捷的判断一批索引中不存在的或 close 的索引
- 桥梁模式
- Palindrome
- 跟着9张思维导图学习Javascript
- 进程间通信——AIDL实例演示
- 安装python3.5.2 error code is 2503
- JAVA学习代码——File文件
- div完成田字格布局
- 对MIME(Multipurpose Internet Mail Extensions)的简介