我有以下映射(我使用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"的server_id和" message_b"
例如,如果我有文件(逐行)
{"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创建视觉)