当使用 Kibana 查询 Elasticsearch(ES)索引数据时,您可以使用 Kibana 的查询界面(Kibana Discover)或 Kibana 的查询语言(Kibana Query Language,KQL)。以下是一些基本的 Kibana 查询语法示例,结合使用 KQL 和实际的代码。
查询所有数据:
*
查询特定字段值等于特定值的文档:
response: 200
查询某个字段值在特定范围内的文档:
status_code: [400 TO 500]
使用 AND、OR 和 NOT 来组合条件:
status_code: 200 AND response_time: >100
使用通配符和模糊搜索:
url: "/api/*"
查询特定字段是否存在:
NOT _exists_:user_agent
查询某个字段值在一定范围内的文档:
age: [18 TO 30]
查询在特定日期范围内的文档:
timestamp: [2023-01-01T00:00:00Z TO 2023-01-31T23:59:59Z]
执行聚合操作,如统计字段值的分布情况:
GET /my-index/_search
{
"size": 0,
"aggs": {
"status_count": {
"terms": {
"field": "status_code"
}
}
}
}
这些示例演示了一些 Kibana 查询语法和 ES 查询语句。请注意,Kibana Query Language(KQL)在 Kibana 的查询界面中自动处理查询构建,而对于更复杂的查询,您可能需要直接使用 Elasticsearch 的查询 DSL(Domain-Specific Language)。要根据您的具体需求构建更复杂的查询,您可能需要查阅 Kibana 和 Elasticsearch 的官方文档以获取更多细节和示例。