Python Elasticsearch仅返回具有一定字段的条目



我正在尝试查询弹性搜索,并且只能获得具有一定字段的结果。

我如何查询具有字段fields.EventData.PGID并忽略不存在的文档?

datadict = es.search(index=idx1, 
                     q='run_id:"Run001" AND "fields.EventData.PGID exists"', 
                     sort='fields.System.TimeCreated.SystemTime',
                     size=1000)

登录事件的方式是不一致的,因此我只需要找到记录PGID的事件。我尝试在python代码中尝试一个尝试块,试图从返回的值访问字段并忽略keyError,但是由于您可以收到多少项目作为查询结果的限制,在某些情况下,我有我所有的结果都缺乏PGID,因此我最终浪费了查询,无法访问实际结果,因此我希望这种过滤在查询级别上进行。

您可以尝试使用此过滤的查询

{
  "size": 1000,
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": {
            "exists": {
              "field": "fields.EventData.PGID"
            },
            "term": {
              "run_id": "Run001"
            }
          }
        }
      }
    }
  }
}

我认为您还可以将排序添加到查询

相关内容

  • 没有找到相关文章

最新更新