elasticsearch-dsl,Python,elasticsearch Dsl" /> elasticsearch-dsl,Python,elasticsearch Dsl" />

Python elasticsearch_dsl:按嵌套字段筛选

Python elasticsearch_dsl:按嵌套字段筛选,python,elasticsearch-dsl,Python,elasticsearch Dsl,我有以下格式的数据: {_source:"@fields": { "code": 200, "relativeCreated": 5969784.005880356, "process": 16, "module": "run", "funcName": "main", "threadName": "MainThread", "filename": "run

我有以下格式的数据:

{_source:"@fields": {
          "code": 200,
          "relativeCreated": 5969784.005880356,
          "process": 16,
          "module": "run",
          "funcName": "main",
          "threadName": "MainThread",
          "filename": "run.py",
          "levelno": 20,
          "processName": "MainProcess",
          "lineno": 210,
          "node": "4",
          "thread": 19255376,
          "package": 977,

      }
}
我想做的是做一个过滤器,只获取包为977的项目。正在尝试执行以下
search.filter(“term”,***{@fields.package”:937})

但是它似乎没有过滤任何内容。

如果@fields中的字段包是嵌套的,那么您可能必须使用嵌套过滤器,检查映射并确认字段类型,对于嵌套过滤器,您可以通过以下方式实现:

search.filter("nested", path = '@fields' filter=F('term', '@fields.package': 937))

F是从哪里来的?从elasticsearch dsl导入?