我正在嘗試編寫一個彈性搜索查詢,該查詢應列出文檔中各個字段所持有的所有不同值。當字段的類型為關鍵字時,術語聚合查詢工作正常,我可以看到這些值及其計數(shù)列在桶。但是,當我查詢不同的柑橘類水果類型時,我沒有得到任何結(jié)果,映射如下所示:{ "vegetables":{ "type": "text", "fields": { "keyword" : { "type" : "keyword", "ignore_above": 256 } } }, "fruits": { "properties": { "citrus": { "properties": { "orange": { "type": "long" }, "lemon": { "type": "long" }, "kiwi": { "type": "long" } } } } }}我期待的結(jié)果是:"aggregations": { "distinct_citrusy_fruits"{ "buckets" : [ { "key":"oranges", "doc_count": 23 }, { "key":"lemon", "doc_count": 21 }, { "key":"kiwi", "doc_count": 23 } ] }}當我為“蔬菜”字段(這是一個關鍵字類型)進行術語聚合時,我能夠獲得如上所述的存儲桶。在這種情況下如何獲得不同的計數(shù)?另外,我沒有更改文檔格式的選項。編輯 - 到目前為止,我發(fā)現(xiàn)的唯一解決方法是調(diào)用映射 api,然后在我的代碼中解析嵌套的 JSON 以獲取鍵值,如果有任何更好的解決方案,請在此處添加答案。
1 回答

翻閱古今
TA貢獻1780條經(jīng)驗 獲得超5個贊
我認為您不能對字段名稱查詢或運行聚合,只能對值進行查詢或運行聚合。對于水果,我期望以下映射:
{
"fruits": {
"properties": {
"citrus": {
"properties": {
"kind": {
"type": "keyword"
},
"count": {
"type": "long"
}
}
}
}
}
}
也許您可以使用 _field_names 字段,其中包含每個具有值的字段名。( https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-field-names-field.html )
添加回答
舉報
0/150
提交
取消