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导入?