我有以下映射(我正在使用elasticsearch5)
curl -XPUT 'http://localhost:9200/server_logs8?pretty' -d '
{
"mappings": {
"kafka-connect": {
"properties": {
"message": {
"type": "string"
},
"server_name": {
"type": "string"
},
"timestamp": {
"type": "date"
}
}
}
}
}
'
我正在寻找我的服务器上的特定错误行为,我需要知道哪些服务器受到影响。要找到它们,我需要执行以下操作
查找同时具有“message_a”和“message_b”的所有 server_id
例如,如果我有文件(逐行)
{"server_id": 1 , "message": "message_a"}
{"server_id": 1 , "message": "message_c"}
{"server_id": 1 , "message": "message_b"}
{"server_id": 2 , "message": "message_d"}
{"server_id": 2 , "message": "message_a"}
{"server_id": 3 , "message": "message_a"}
{"server_id": 3 , "message": "message_b"}
我想让它还给我[1, 3]
是否可以在一个查询中使用 ElasticSearch 执行此操作?
目前我正在做第一个请求“message_a”,然后是第二个请求“message_b”,我做了我得到的两组“server_id”的交集,但我想在一个请求中做到这一点(特别是如果我可以从那里在 Kibana 中创建可视化)