使用 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
,这意味着它将被拆分成单词,而 /
不是一个单词,因此它会被删除。
类似于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
,这意味着它将被拆分成单词,而 /
不是一个单词,因此它会被删除。