这是一个带有嵌套属性的模式,其中一个属性(
AncestorIds
{
"dynamic": "strict",
"properties" : {
"Id" : {
"type": "integer"
},
"Name" : {
"type": "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"normalizer": "normalizer_alphanumeric"
},
"text" : {
"type" : "text",
"analyzer": "english"
}
}
},
"Menus" : {
"type" : "nested",
"properties" : {
"Id" : {
"type" : "integer"
},
"Name" : {
"type" : "keyword",
"normalizer": "normalizer_alphanumeric"
},
"AncestorsIds" : {
"type" : "integer"
}
}
}
}
}
这是一份文件。
{
"Id": 12781279,
"Name": "Thing of purpose made to fit",
"Menus": [
{
"Id": -571057,
"Name": "Top level menu",
"AncestorsIds": [
-571057
]
}
,
{
"Id": 1022313,
"Name": "Other",
"AncestorsIds": [
-571057
,
1022313
]
}
]
}
在供应商的目录中,一个产品可以在他们的菜单继承权中的不止一个位置,因此
Menus
UI为菜单和树中的每个条目(不仅仅是叶子)显示了一个树,我需要从搜索中获得匹配文档的数量。对于id为的菜单项
z
这是已删除的匹配文档数
在
Menus.AncestorIds
菜单
这可能吗?
我有这个,但是改变了
Menus.Id
菜单.antestorids
不起作用。
"aggs":{
"menus": {
"nested": {
"path": "Menus"
},
"aggs":{
"menu_aggregation": {
"terms": {
"field": "Menus.Id",
"size": 10
}
}
}
}
}
[
{
"Id": 1,
"Name": "Thing of purpose made to fit",
"Menus": [
{"Id": 10, "Name": "Top level menu", "AncestorsIds": [10]},
{"Id": 12, "Name": "Top level menu", "AncestorsIds": [10, 11, 12]}
]
},
{
"Id": 2,
"Name": "Thing of purpose made to fit differently",
"Menus": [
{"Id": 10, "Name": "Top level menu", "AncestorsIds": [10]},
{"Id": 13, "Name": "Top level menu", "AncestorsIds": [10, 11, 13]}
]
}
]
(菜单项出现在
祖先
Menu Count
10 2
11 2
12 1
13 1