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「} ' –

相關問題