使用 elasticsearch-dsl-py 在子字段(包含在另一个字段中的字段)上创建查询?

create query on subfield (field contained in another field) using elasticsearch-dsl-py?

类似于question 我想在子字段(不是嵌套类型)上创建查询

如果数据格式正确

"fs": {
    "used": 1000,
    "mount_point": "/"
 }

answer by aaronfay所述 我尝试使用

进行查询
search.query('match', **{"fs.used": 0})

它按预期工作。

但对于名为 mount_point 的字段,查询 returns 为空响应。

search.query('match', **{"fs.mount_point": "/"})

即使我的数据有 mount_point = '/'。为什么?

mount_point 字段的映射是什么?您需要该字段的类型为 keyword ,这意味着没有任何分析器。默认情况下,它将是 text,这意味着它将被拆分成单词,而 / 不是一个单词,因此它会被删除。