elasticsearch - 高级 kibana / elasticsearch devtools 查询
问题描述
我正在通过以下方式查询我的索引:
GET INDEX/_count?q=KEY:VALUE
我想获取值列表中的数据,所以我多次运行它:
GET INDEX/_count?q=KEY:VALUE0
GET INDEX/_count?q=KEY:VALUE1
GET INDEX/_count?q=KEY:VALUE2
另外,我想检查密钥是否存在。这些选项在“发现”窗口中可用,但在这里我不知道如何访问它们...
我最终想要的是:查询特定索引 [I] 并计数(如果可能,获取高级统计信息,例如搜索的总文档的大小)所有具有特定键 [K] 的文档,或者具有超出列表中的值值(如果可能的话,使用正则表达式)。除此之外,我希望搜索/计数在特定日期之间。我知道如何在“发现”窗口中执行此操作,但发现有 2 个问题:
- 给出实际的文档(太重了,我只想要大小和数量)
- 涉及图形用户界面
总而言之,我有几个困难:
- 如何将大小添加到 DevTools 的计数中
- 如何计算/搜索最多过去一个月
- 如何查找密钥是否存在(例如
GET I/_count?K:exists
?) - 如何查找值是否是允许值列表之一(例如
GET I/_count?K=x || K=y || K2=z
- 如何在正则表达式中描述值(例如
GET I/_count?K=abc*
) - 计数/搜索完成后,如何删除所述文档(只需将 GET 替换为 DELETE?)
解决方案
这应该让你开始:
GET INDEX/_search
{
"query": {
"bool": {
"must": [
{
"range": {
"dateField": {
"gte": "now-1M"
}
}
},
{
"bool": {
"filter": {
"exists": {
"field": "K"
}
}
}
},
{
"query_string": {
"query": "K:(x OR y) OR K2:z"
}
},
{
"regexp": {
"K": "abc*"
}
}
]
}
}
}
或者,您可以切换must
到should
,从而匹配其中任何一个子查询。
在此之后,替换_search
为_delete_by_query
你就可以开始了。
推荐阅读
- javascript - 使用js切换多个元素的like按钮
- git - git mv 失败并出现错误“致命:源目录为空”
- python - 和平方差的列表推导
- oauth-2.0 - 如何获取 OAuth 客户端 ID 的 client_secret
- laravel - 版主不能禁止管理员(政策)
- reactjs - htaccess 具有两个用于语言环境的索引
- android - 无法从 jitpack.io 存储库中找到依赖项
- moviepy - moviepy textclip 未在 centos7 或 amazon linux 上呈现,但在 mac 上呈现完美
- php - Linux 上的 Laravel:创建新项目错误:您的需求无法解析为可安装的软件包集
- node.js - 如何在 vanilla node.js 中验证没有登录表单的用户?