我有以下對象:排序布爾嵌套子
[{
"some_field": "some_value",
"nested_objects": [{
"some_field2": "some_value",
"nested_objects2": [{
"some_field": "some_value",
"bool_field": true
}, {
"some_field": "some_value",
"bool_field": true
}, {
"some_field": "some_value",
"bool_field": false
}]
}, {
"some_field2": "some_value",
"nested_objects2": [{
"some_field": "some_value",
"bool_field": false
}, {
"some_field": "some_value",
"bool_field": false
}]
}]
},
{
"some_field": "some_value",
"nested_objects": [{
"some_field2": "some_value",
"nested_objects2": [{
"some_field": "some_value",
"bool_field": false
}, {
"some_field": "some_value",
"bool_field": false
}, {
"some_field": "some_value",
"bool_field": true
}]
}]
}
]
所有嵌套的對象映射爲嵌套對象。我想根據第三級別的孩子bool值對頂級父級進行排序。具有更多布爾值的孩子應該比其他人高。
所以我基本上要由
_source.nested_objects.nested_objects2.bool_field
對象更多的真實值進行排序的排名應該比別人高。
我也希望能夠過濾嵌套的對象,如:
_source.nested_objects.some_field == "some specific value"
然後應計算分值僅適用於匹配的對象和匹配嵌套的對象。
這可能嗎?
在索引時計算值是不可能的,因爲我想能夠創建一個匹配嵌套對象的子集的查詢,然後我不想所有嵌套對象的聚合值。 –
由於相同的原因,該腳本可能無法工作? –
你是對的,如果你的目標是爲嵌套項目的子集計數,那麼根上的計算值將無效。但是,如果您擊中頂層對象,我不相信只有在返回父對象的同時才返回子對象的子集。 如果這是要求,我認爲規範化數據將是你最好的選擇。 – Miek