elasticsearch_dsl:按嵌套字段筛选

2024-06-01 13:50:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的数据:

{_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}) 但它似乎没有过滤任何东西。在


Tags: 数据runpackagesourcefieldsmain格式code
1条回答
网友
1楼 · 发布于 2024-06-01 13:50:23

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

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

相关问题 更多 >