elasticsearch elasticsearch中的应用程序端连接示例,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch elasticsearch中的应用程序端连接示例,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch elasticsearch中的应用程序端连接示例

elasticsearch elasticsearch中的应用程序端连接示例,elasticsearch,kibana,elasticsearch,Kibana,现在通过阅读,我明白了我可以得到一个值列表,然后将它们用作过滤器 自5.0版以来,“过滤”查询已被弃用,现在我已将其替换为“bool”查询 我找不到填充第一个查询结果的方法 我的第一个问题是: GET /access_log/_search?size=5 { "query": { "bool": { "must":[ {"term":{"status":200}} ], "should": [ {"match": {

现在通过阅读,我明白了我可以得到一个值列表,然后将它们用作过滤器

自5.0版以来,“过滤”查询已被弃用,现在我已将其替换为“bool”查询

我找不到填充第一个查询结果的方法

我的第一个问题是:

GET /access_log/_search?size=5
{
  "query": {
    "bool": {
      "must":[
        {"term":{"status":200}}
      ],
      "should": [
        {"match": {"request_1": "supporter-manager"}},
        {"match": {"request_2": "deploy"}}
      ],
      "minimum_should_match": 2
    }
  }
}
所以这里我想要所有匹配上面查询的“user\u id”,并在第二次查询中通过fill terms查询

GET /access_log/_search?
{
  "query":{
    "bool":{
      "filter":{
        "terms":{
          "user_id":[]
        }
      },
      "should":[
        {"match": {"request_1": "rent"}},
        {"match": {"request_2": "start"}}
      ]
    }
  }
} 
我想将第一次查询的结果填充到
“terms”:{“user_id”:[**here**]}
中,但我很困惑,我该如何实现这一点

据我所知,必须指定字段名,所以只有可能会像上面的查询一样传入空[],或者不传入任何内容(也不起作用)

我也尝试过使用“必须”子句和multi_match,如下所示: 获取/访问\u日志/\u搜索

{
  "query":{
    "bool":{
      "must":{
        "multi_match":{
          "operator":"or",
          "fields":["user_id"]
        }
      }
    }
  }
}
但它一直给我
“没有为多匹配查询指定文本”
,我想这是因为我没有“query”子句,但我试图用查询1中的用户id列表填充它,再次传递空[]

所以最后我得到的文档包含“request_1”:“rent”,“request_2”:“start”,并且它们的“user_id”必须来自查询1