1

我有以下映射(我正在使用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 中创建可视化)

4

0 回答 0