隨著json在后端應用開發中的廣泛應用,很多時候我們需要在es查詢中嵌套json數據。在es查詢中嵌套json數據是常見的需求之一。我們可以使用Nested查詢或者Object查詢來實現該需求。
Nested查詢是將一個對象中的嵌套對象當作單獨的文檔進行索引,使用時需要在創建mapping時為該字段添加nested類型。查詢時使用Nested查詢即可。
{ "mappings": { "properties": { "book": { "type": "nested" "properties": { "title": { "type": "text" }, "author": { "type": "keyword" }, "publisher": { "type": "text" } } } } } }
Object查詢與Nested查詢類似,都是將一個嵌套對象視為一個文檔來進行查詢。但是Object查詢要求每個文檔必須具有相同的鍵集,否則會導致查詢失敗。
{ "mappings": { "properties": { "book": { "type": "object" "properties": { "title": { "type": "text" }, "author": { "type": "keyword" }, "publisher": { "type": "text" } } } } } }
在實際應用中,我們可以根據具體的數據結構和查詢需求來選擇使用Nested查詢還是Object查詢。
上一篇python 有對象嗎
下一篇Python 能爬取電影