0

类似于question 我想创建一个子字段的查询(其类型的嵌套的不)使用elasticsearch-dsl-py在子字段(包含在另一个字段中的字段)上创建查询?

如果数据是在格式

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

answer by aaronfay 我试图与

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

它按预期工作。

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

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

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

回答

1

mount_point字段的映射是什么?您需要该字段为keyword,这意味着没有任何分析仪。默认情况下,它将是text,这意味着它将被拆分为单词,并且/不是一个单词,因此它将被丢弃。

+0

感谢您的回复。它是由logstash创建的topbeat索引的默认映射。 'mount_point'领域的映射是类型'string' ' “FS” 的:{ ... “装入点”:{ “类型”: “串” }, “拿来主义”:{ “类型”:“长” }, ... }} , ' 所以我应该改变这个字段的映射'keyword' –

+0

通过与其他领域相比(不只有暂时解决'/'值 ' .query('match',** {“fs.device_name”:“/ dev/sd a4“} ' –

相关问题