У меня есть индекс эластичного поиска со следующим отображением:
{
"properties":{
"asset":{
"properties":{
"customerId":{
"type":"long"
}
}
},
"software":{
"type": "nested",
"properties":{
"id":{
"type":"long"
},
... (more properties)
}
}
}
Могут быть некоторые документы, имеющие "software":null
Когда для атрибута программного обеспечения выполняется вложенный фильтр, например,id, doc_count в агрегации фильтров также включает те программы, которые имеют нулевое значение.
агрегация выглядит следующим образом:
"aggregations": {
"aggs": {
"nested": {
"path": "software"
},
"aggregations": {
"filtered": {
"filter": {
"term": {
"software.type": {
"value": "Application",
"boost": 1.0
}
}
},
"aggregations": {
"software_ids": {
"terms": {
"field": "software.id",
"min_doc_count": 1,
"shard_min_doc_count": 0
}
}
}
}
}
}
}
Часть ответа:
"aggregations": {
"aggs": {
"doc_count": 129958,
"filtered": {
**"doc_count": 7094,**
Этот doc_count включает в себя «программное обеспечение»: null. Есть ли способ исключить их?
Редактировать: я рассмотрел вопрос об использовании «отсутствующего» параметра для агрегации внутренних терминов (т.е. для агрегации внутри агрегации фильтра).Но хотелось бы знать, есть ли способ вообще исключить такие «вложенные» нули из агрегатов.