3
我有以下簡單的映射:ElasticSearch - 字符串concat聚合?
"element": {
"dynamic": "false",
"properties": {
"id": { "type": "string", "index": "not_analyzed" },
"group": { "type": "string", "index": "not_analyzed" },
"type": { "type": "string", "index": "not_analyzed" }
}
}
這基本上是存儲Group
對象的方式:
{
id : "...",
elements : [
{id: "...", type: "..."},
...
{id: "...", type: "..."}
]
}
我想找到許多不同的團體存在如何共享同一組元素類型(有序,包括重複)。
一個顯而易見的解決辦法是,將模式改爲:
"element": {
"dynamic": "false",
"properties": {
"group": { "type": "string", "index": "not_analyzed" },
"concatenated_list_of_types": { "type": "string", "index": "not_analyzed" }
}
}
但是,由於要求,我們需要能夠通過(聚集):(
從組中排除某些類型該文件的所有字段都蒙戈的ID,所以在SQL我會做這樣的事情:
SELECT COUNT(id), concat_value FROM (
SELECT GROUP_CONCAT(type_id), group_id
FROM table
WHERE type_id != 'some_filtered_out_type_id'
GROUP BY group_id
) T GROUP BY concat_value
彈性與給定的映射它真的很容易過濾掉,它也不是一個問題算一個假設我們有一個分值。不用說,總和聚合不適用於字符串。
我該如何得到這個工作? :)
謝謝!