Skip to main content

Agregações

É possível obter os resultados da consulta (hits) e receber agregações/buckets usando a mesma consulta. Isso é muito poderoso para construir aplicações que permitem busca e também contêm facetamento / filtragem, ou que precisam resumir estatísticas. As agregações devem ser fornecidas no parâmetro aggregationList. A agregação sempre retornará um máximo de 5000 elementos agregados. O número de buckets pode ser definido usando o parâmetro paramSize.

A estrutura de agregação é a seguinte:

  • type: Tipo de agregação a aplicar.
  • name: Campo ao qual aplicar o filtro.
  • params: Parâmetros para agregar.
  • subAggregations: Agregações aninhadas, contendo um array com a mesma estrutura de uma agregação.

Tipos de Agregação

O Tipo de Agregação é definido no atributo 'type' do 'aggregationList'. O valor TERM é usado para agregar campos que não são aninhados. O valor NESTED é usado para agregar campos que são aninhados.

Esta agregação fornece uma nova dimensão, habilitando o uso de campos NESTED em outras agregações. Se houver necessidade de filtrar os registros recuperados pela consulta, basta usar FILTER.

A plataforma otimizou a forma como os campos NESTED estão sendo armazenados. Esta melhoria removeu o suporte para os operadores de consulta que começam com NESTED_. Por favor, atualize suas consultas para usar apenas a versão sem NESTED_. Para mais detalhes, consulte a documentação relacionada ao operador que você está usando.

Alguns exemplos de operadores que a plataforma não suporta mais:

NESTED_TERMS_FILTER, NESTED_RANGE_FILTER, NESTED_MATCH_FILTER, NESTED_MATCH_ALL_TERMS_FILTER, NESTED_WILDCARD_FILTER, NESTED_WILDCARD_CUSTOM_FILTER, NESTED_GEODISTANCE_FILTER.

Uma agregação pode ter vários níveis de agregação abaixo dela. Para este propósito, precisamos usar o atributo "subAggregations". Este atributo é definido na agregação normal e subsequentemente.

TERM

Cria buckets relacionados ao número de aparições de um TERM. Isso pode ser usado para obter a contagem geral de uma faceta para filtragem.

Exemplo de uma agregação TERM usando o campo gender de um registro de estudante. É similar a "SELECT count(*), gender FROM student GROUP BY gender" no SQL.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues"
],
"subAggregations": [
{
"type": "TERM",
"name": "gender",
"params": [
"mdmGoldenFieldAndValues.gender"
]
}
]
}
]
}

Resposta JSON

{
"count": 7,
"totalHits": 7,
"took": 50,
"hits": [
{
"mdmCounterForEntity": 20,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0083-10-14T00:00:00Z",
"gender": "M",
"staudentid": "3",
"phone": [
{
"mdmphonenumber": "91187226",
"mdmphonetype": "1"
},
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "4085075432"
}
],
"mdmaddress": [
{
"mdmstate": "CA",
"mdmzipcode": "94032",
"mdmcountry": "US",
"mdmcity": "Mountain View",
"mdmaddress1": "650 Castro Street",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "1",
"mdmname": "Antônio dos Santos"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ac37080c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"e7434fd905c67f408f2834304e676e3e"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-04T14:23:40.833Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "3 Antônio dos Santos",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ac37080c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "3"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ac45ae0c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 19,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "2011-09-11T00:00:00Z",
"gender": "M",
"staudentid": "5",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47987654357"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmcity": "Joinville",
"mdmaddress1": "Av Santos Dumont 935",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "3",
"mdmname": "Eduardo da Silva"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5acdf7d0c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"aa7da14444f8531fa4963c370ac84adf"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-04T13:48:29.987Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "5 Eduardo da Silva",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5acdf7d0c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "5"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5acf0940c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 27,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0058-09-05T00:00:00Z",
"gender": "",
"staudentid": "7",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "11976593432"
}
],
"mdmaddress": [
{
"mdmstate": "SP",
"numberaddress": "110",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmaddress2": "",
"mdmcity": "Sao Paulo",
"mdmaddress1": "Av Blumenau",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "0",
"mdmname": "Joao Pereira"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ad5e710c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"d01d5b92021bd878ba9f2d182ecad488"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-05T23:24:22.537Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "7 Joao Pereira",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ad5e710c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "7"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ad6d170c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 30,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0088-01-03T00:00:00Z",
"gender": "F",
"staudentid": "1",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47998493432"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"numberaddress": "100",
"mdmzipcode": "89233004",
"mdmcountry": "Brazil",
"mdmaddress2": "",
"mdmcity": "Joinville",
"mdmaddress1": "Rua Sao Paulo 123",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Joana Silva da Cunha"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5aac8d20c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"82e8d5670d0d179255fb523bb85cc0e9"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:58.053Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "1 Joana Silva da Cunha",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:34Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5aac8d20c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "1"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ab4ca80c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 29,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0097-04-06T00:00:00Z",
"gender": "F",
"staudentid": "6",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "11998344432"
}
],
"mdmaddress": [
{
"mdmstate": "SP",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmcity": "Sao Paulo",
"mdmaddress1": "Girassol 343",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Juliana da Rosa Silva"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ad1ef70c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"90f6e072dc37fdf557ddfca2b378bf8a"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:35.564Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "6 Juliana da Rosa Silva",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ad1ef70c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "6"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ad300e0c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 28,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0091-11-03T00:00:00Z",
"gender": "F",
"staudentid": "2",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47998493432"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"mdmzipcode": "89233004",
"mdmcountry": "Brazil",
"mdmcity": "Joinville",
"mdmaddress1": "Rua Jasmim 543",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Carla Paula"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5abeb590c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"57f39965487768e3defde4238dc2a082"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:06.262Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "2 Carla Paula",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5abeb590c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "2"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5abfc700c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 31,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0083-02-23T00:00:00Z",
"gender": "F",
"staudentid": "4",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "4085075432"
}
],
"mdmaddress": [
{
"mdmstate": "CA",
"mdmzipcode": "94032",
"mdmcountry": "US",
"mdmcity": "San Jose",
"mdmaddress1": "3421 El Camino Real",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "3",
"mdmname": "Ana dos Santos"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ac67dc0c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"51a2247e1a8ed06579c35754af9e13a9"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:23:27.385Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "4 Ana dos Santos",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ac67dc0c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "4"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5acaea90c3ee11e792b20242ac110003"
}
],
"aggs": {
"goldenValues": {
"buckets": {
"": {
"docCount": 7,
"key": "",
"aggregations": {
"gender": {
"buckets": {
"f": {
"docCount": 4,
"key": "f"
},
"m": {
"docCount": 2,
"key": "m"
},
"": {
"docCount": 1,
"key": ""
}
}
}
}
}
}
}
}
}

NESTED

Exemplo de agregação NESTED por endereço (campo aninhado) cidade do estudante usando subaggregação do tipo TERM.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues.mdmaddress"
],
"subAggregations": [
{
"type": "TERM",
"name": "city",
"params": [
"mdmGoldenFieldAndValues.mdmaddress.mdmcity"
]
}
]
}
]
}

Resposta JSON

{
"count": 7,
"totalHits": 7,
"took": 16,
"hits": [
{
"mdmCounterForEntity": 20,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0083-10-14T00:00:00Z",
"gender": "M",
"staudentid": "3",
"phone": [
{
"mdmphonenumber": "91187226",
"mdmphonetype": "1"
},
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "4085075432"
}
],
"mdmaddress": [
{
"mdmstate": "CA",
"mdmzipcode": "94032",
"mdmcountry": "US",
"mdmcity": "Mountain View",
"mdmaddress1": "650 Castro Street",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "1",
"mdmname": "Antônio dos Santos"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ac37080c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"e7434fd905c67f408f2834304e676e3e"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-04T14:23:40.833Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "3 Antônio dos Santos",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ac37080c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "3"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ac45ae0c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 19,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "2011-09-11T00:00:00Z",
"gender": "M",
"staudentid": "5",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47987654357"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmcity": "Joinville",
"mdmaddress1": "Av Santos Dumont 935",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "3",
"mdmname": "Eduardo da Silva"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5acdf7d0c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"aa7da14444f8531fa4963c370ac84adf"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-04T13:48:29.987Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "5 Eduardo da Silva",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5acdf7d0c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "5"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5acf0940c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 27,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0058-09-05T00:00:00Z",
"gender": "",
"staudentid": "7",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "11976593432"
}
],
"mdmaddress": [
{
"mdmstate": "SP",
"numberaddress": "110",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmaddress2": "",
"mdmcity": "Sao Paulo",
"mdmaddress1": "Av Blumenau",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "0",
"mdmname": "Joao Pereira"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ad5e710c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"d01d5b92021bd878ba9f2d182ecad488"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-05T23:24:22.537Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "7 Joao Pereira",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ad5e710c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "7"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ad6d170c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 30,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0088-01-03T00:00:00Z",
"gender": "F",
"staudentid": "1",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47998493432"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"numberaddress": "100",
"mdmzipcode": "89233004",
"mdmcountry": "Brazil",
"mdmaddress2": "",
"mdmcity": "Joinville",
"mdmaddress1": "Rua Sao Paulo 123",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Joana Silva da Cunha"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5aac8d20c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"82e8d5670d0d179255fb523bb85cc0e9"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:58.053Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "1 Joana Silva da Cunha",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:34Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5aac8d20c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "1"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ab4ca80c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 29,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0097-04-06T00:00:00Z",
"gender": "F",
"staudentid": "6",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "11998344432"
}
],
"mdmaddress": [
{
"mdmstate": "SP",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmcity": "Sao Paulo",
"mdmaddress1": "Girassol 343",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Juliana da Rosa Silva"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ad1ef70c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"90f6e072dc37fdf557ddfca2b378bf8a"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:35.564Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "6 Juliana da Rosa Silva",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ad1ef70c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "6"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ad300e0c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 28,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0091-11-03T00:00:00Z",
"gender": "F",
"staudentid": "2",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47998493432"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"mdmzipcode": "89233004",
"mdmcountry": "Brazil",
"mdmcity": "Joinville",
"mdmaddress1": "Rua Jasmim 543",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Carla Paula"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5abeb590c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"57f39965487768e3defde4238dc2a082"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:06.262Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "2 Carla Paula",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5abeb590c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "2"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5abfc700c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 31,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0083-02-23T00:00:00Z",
"gender": "F",
"staudentid": "4",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "4085075432"
}
],
"mdmaddress": [
{
"mdmstate": "CA",
"mdmzipcode": "94032",
"mdmcountry": "US",
"mdmcity": "San Jose",
"mdmaddress1": "3421 El Camino Real",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "3",
"mdmname": "Ana dos Santos"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ac67dc0c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"51a2247e1a8ed06579c35754af9e13a9"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:23:27.385Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "4 Ana dos Santos",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ac67dc0c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "4"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5acaea90c3ee11e792b20242ac110003"
}
],
"aggs": {
"goldenValues": {
"docCount": 7,
"aggregations": {
"city": {
"buckets": {
"joinville": {
"docCount": 3,
"key": "joinville"
},
"paulo": {
"docCount": 2,
"key": "paulo"
},
"sao": {
"docCount": 2,
"key": "sao"
},
"jose": {
"docCount": 1,
"key": "jose"
},
"mountain": {
"docCount": 1,
"key": "mountain"
},
"san": {
"docCount": 1,
"key": "san"
},
"view": {
"docCount": 1,
"key": "view"
}
}
}
}
}
}
}

Se você deseja correspondências exatas para os termos, .raw deve ser usado. Caso contrário, você obterá a contagem para os termos tokenizados (por exemplo, para registros com 'Sao Paulo', retornará '1 Sao' e "1 Paulo" como no exemplo acima).

Exemplo com "raw".

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues.mdmaddress"
],
"subAggregations": [
{
"type": "TERM",
"name": "city",
"params": [
"mdmGoldenFieldAndValues.mdmaddress.mdmcity.raw"
]
}
]
}
]
}

Resposta JSON

{
"count": 7,
"totalHits": 7,
"took": 3,
"hits": [
{
"mdmCounterForEntity": 20,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0083-10-14T00:00:00Z",
"gender": "M",
"staudentid": "3",
"phone": [
{
"mdmphonenumber": "91187226",
"mdmphonetype": "1"
},
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "4085075432"
}
],
"mdmaddress": [
{
"mdmstate": "CA",
"mdmzipcode": "94032",
"mdmcountry": "US",
"mdmcity": "Mountain View",
"mdmaddress1": "650 Castro Street",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "1",
"mdmname": "Antônio dos Santos"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ac37080c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"e7434fd905c67f408f2834304e676e3e"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-04T14:23:40.833Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "3 Antônio dos Santos",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ac37080c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "3"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ac45ae0c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 19,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "2011-09-11T00:00:00Z",
"gender": "M",
"staudentid": "5",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47987654357"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmcity": "Joinville",
"mdmaddress1": "Av Santos Dumont 935",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "3",
"mdmname": "Eduardo da Silva"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5acdf7d0c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"aa7da14444f8531fa4963c370ac84adf"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-04T13:48:29.987Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "5 Eduardo da Silva",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5acdf7d0c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "5"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5acf0940c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 27,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0058-09-05T00:00:00Z",
"gender": "",
"staudentid": "7",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "11976593432"
}
],
"mdmaddress": [
{
"mdmstate": "SP",
"numberaddress": "110",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmaddress2": "",
"mdmcity": "Sao Paulo",
"mdmaddress1": "Av Blumenau",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "0",
"mdmname": "Joao Pereira"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ad5e710c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"d01d5b92021bd878ba9f2d182ecad488"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-05T23:24:22.537Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "7 Joao Pereira",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ad5e710c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "7"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ad6d170c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 30,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0088-01-03T00:00:00Z",
"gender": "F",
"staudentid": "1",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47998493432"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"numberaddress": "100",
"mdmzipcode": "89233004",
"mdmcountry": "Brazil",
"mdmaddress2": "",
"mdmcity": "Joinville",
"mdmaddress1": "Rua Sao Paulo 123",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Joana Silva da Cunha"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5aac8d20c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"82e8d5670d0d179255fb523bb85cc0e9"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:58.053Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "1 Joana Silva da Cunha",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:34Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5aac8d20c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "1"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ab4ca80c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 29,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0097-04-06T00:00:00Z",
"gender": "F",
"staudentid": "6",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "11998344432"
}
],
"mdmaddress": [
{
"mdmstate": "SP",
"mdmzipcode": "89233004",
"mdmcountry": "Brasil",
"mdmcity": "Sao Paulo",
"mdmaddress1": "Girassol 343",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Juliana da Rosa Silva"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ad1ef70c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"90f6e072dc37fdf557ddfca2b378bf8a"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:35.564Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "6 Juliana da Rosa Silva",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ad1ef70c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "6"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5ad300e0c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 28,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0091-11-03T00:00:00Z",
"gender": "F",
"staudentid": "2",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "47998493432"
}
],
"mdmaddress": [
{
"mdmstate": "SC",
"mdmzipcode": "89233004",
"mdmcountry": "Brazil",
"mdmcity": "Joinville",
"mdmaddress1": "Rua Jasmim 543",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "2",
"mdmname": "Carla Paula"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5abeb590c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"57f39965487768e3defde4238dc2a082"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:22:06.262Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "2 Carla Paula",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5abeb590c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "2"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5abfc700c3ee11e792b20242ac110003"
},
{
"mdmCounterForEntity": 31,
"mdmGoldenFieldAndValues": {
"mdmbirthday": "0083-02-23T00:00:00Z",
"gender": "F",
"staudentid": "4",
"phone": [
{
"mdmphonenumber": "Residencial",
"mdmphonetype": "4085075432"
}
],
"mdmaddress": [
{
"mdmstate": "CA",
"mdmzipcode": "94032",
"mdmcountry": "US",
"mdmcity": "San Jose",
"mdmaddress1": "3421 El Camino Real",
"mdmaddresstype": "Residencial"
}
],
"siblingsnumber": "3",
"mdmname": "Ana dos Santos"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "studentGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"5ac67dc0c3ee11e792b20242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"51a2247e1a8ed06579c35754af9e13a9"
]
},
"_score": 1.4142135,
"mdmLastUpdated": "2018-04-07T17:23:27.385Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "4 Ana dos Santos",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-07T19:03:35Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_student": [
"5ac67dc0c3ee11e792b20242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"student": {
"code": "4"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "57e61090c3e211e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "5acaea90c3ee11e792b20242ac110003"
}
],
"aggs": {
"goldenValues": {
"docCount": 7,
"aggregations": {
"city": {
"buckets": {
"Joinville": {
"docCount": 3,
"key": "Joinville"
},
"Sao Paulo": {
"docCount": 2,
"key": "Sao Paulo"
},
"Mountain View": {
"docCount": 1,
"key": "Mountain View"
},
"San Jose": {
"docCount": 1,
"key": "San Jose"
}
}
}
}
}
}
}

COUNT

Esta agregação fornece o número total de itens no nível.

Exemplo, isso obterá o número total de estudantes dentro da agregação.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues"
],
"subAggregations": [
{
"type": "COUNT",
"name": "countstudent",
"params": [
"mdmGoldenFieldAndValues.student"
]
}
]
}
]
}

Resposta JSON

{
"count": 0,
"totalHits": 68488,
"took": 2184,
"hits": [],
"aggs": {
"countstudent": {
"value": 68486,
"valueAsString": "68486.0"
}
}
}

CARDINALITY

Esta agregação fornece o número total de valores únicos na agregação.

Exemplo, isso obterá o número total de estudantes únicos dentro da agregação.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "courseGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues"
],
"subAggregations": [
{
"type": "CARDINALITY",
"name": "uniques",
"params": [
"mdmGoldenFieldAndValues.student"
]
}
]
}
]
}

MINIMUM

Esta agregação fornece o valor mínimo para um campo numérico. Exemplo, isso obterá o menor valor de siblingsnumber do estudante. É similar a "SELECT MIN(siblingsnumber) FROM student" no SQL.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues"
],
"subAggregations": [
{
"type": "MINIMUM",
"name": "minimunsiblingsnumber",
"params": [
"mdmGoldenFieldAndValues.siblingsnumber"
]
}
]
}
]
}

Nesta requisição usamos pageSize=0. Portanto, retornará apenas informações de agregação ("aggs").

Resposta JSON

{
"count": 0,
"totalHits": 7,
"took": 77,
"hits": [],
"aggs": {
"minimunsiblingsnumber": {
"value": 0,
"valueAsString": "0.0"
}
}
}

MAXIMUM

Esta agregação fornece o valor máximo para um campo numérico. Exemplo, isso obterá o maior valor de siblingsnumber do estudante e retornará este valor no atributo "maximumsiblingsnumber". É similar a "SELECT MAX(siblingsnumber) FROM student" no SQL.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues"
],
"subAggregations": [
{
"type": "MAXIMUM",
"name": "maximumsiblingsnumber",
"params": [
"mdmGoldenFieldAndValues.siblingsnumber"
]
}
]
}
]
}

Nesta requisição usamos pageSize=0. Portanto, retornará apenas informações de agregação ("aggs"). Resposta JSON

{
"count": 0,
"totalHits": 7,
"took": 1,
"hits": [],
"aggs": {
"maximumsiblingsnumber": {
"value": 3,
"valueAsString": "3.0"
}
}
}

STATS

Esta agregação fornece estatísticas (como máximo, mínimo, média) em campos numéricos, para obter estatísticas simples e limites de um campo.

Exemplo, isso obterá as estatísticas do "siblingsnumber".

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues"
],
"subAggregations": [
{
"type": "STATS",
"name": "statsiblingsnumber",
"params": [
"mdmGoldenFieldAndValues.siblingsnumber"
]
}
]
}
]
}

Nesta requisição usamos pageSize=0. Portanto, retornará apenas informações de agregação ("aggs").

Resposta JSON

{
"count": 0,
"totalHits": 7,
"took": 16,
"hits": [],
"aggs": {
"statsiblingsnumber": {
"count": 7,
"min": 0,
"max": 3,
"sum": 13,
"avg": 1.8571428571428572
}
}
}

EXTENDED_STATS

Esta agregação fornece estatísticas estendidas (como máximo, mínimo, média, variância, desvio padrão) em campos numéricos, para obter estatísticas completas e variâncias de um campo.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "NESTED",
"name": "goldenValues",
"params": [
"mdmGoldenFieldAndValues"
],
"subAggregations": [
{
"type": "EXTENDED_STATS",
"name": "extendedsatsiblingsnumber",
"params": [
"mdmGoldenFieldAndValues.siblingsnumber"
]
}
]
}
]
}

Nesta requisição usamos pageSize=0. Portanto, retornará apenas informações de agregação ("aggs").

Resposta JSON

{
"count": 0,
"totalHits": 7,
"took": 5,
"hits": [],
"aggs": {
"extendedsatsiblingsnumber": {
"sumOfSquares": 31,
"variance": 0.979591836734694,
"stdDeviation": 0.989743318610787,
"count": 7,
"min": 0,
"max": 3,
"sum": 13,
"avg": 1.8571428571428572
}
}
}

Para campos dentro de uma estrutura NESTED, é necessário envolver a agregação dentro de uma agregação NESTED.

DATE_HISTOGRAM

Esta agregação fornece agrupamento por unidade de tempo. Por exemplo, obter estatísticas (mínimo, máximo, média) de ausência por semana (1w). Expressões disponíveis para intervalo: year (1y), quarter (1q), month (1M), week (1w), day (1d), hour (1h), minute (1m), second (1s)

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "matriculaGolden"
}
],
"aggregationList": [
{
"type": "DATE_HISTOGRAM",
"name": "weekly",
"params": [
"mdmGoldenFieldAndValues.mdmstartdate",
"1w",
"yyyy-MM-dd"
],
"subAggregations": [
{
"type": "EXTENDED_STATS",
"name": "statsAbsence",
"params": [
"mdmGoldenFieldAndValues.absence"
]
}
]
}
]
}

Nesta requisição usamos pageSize=0. Portanto, retornará apenas informações de agregação ("aggs").

Resposta JSON

{
"count": 0,
"totalHits": 10,
"took": 9,
"hits": [],
"aggs": {
"weekly": {
"buckets": {
"1969-12-29": {
"docCount": 10,
"key": "1969-12-29",
"aggregations": {
"statsAbsence": {
"sumOfSquares": 39,
"variance": 0.7654320987654317,
"stdDeviation": 0.8748897637790899,
"count": 9,
"min": 1,
"max": 3,
"sum": 17,
"avg": 1.8888888888888888
}
}
}
}
}
}
}

HISTOGRAM

Esta agregação fornece o histograma considerando um campo/valor. Por exemplo, a consulta abaixo retornará o histograma de siblingsnumber para cada intervalo de 2 valores de número de irmãos (params = 2).

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
}
],
"aggregationList": [
{
"type": "HISTOGRAM",
"name": "siblingsnumber",
"params": [
"mdmGoldenFieldAndValues.siblingsnumber",
"2"
]
}
]
}

Nesta requisição usamos pageSize=0. Portanto, retornará apenas informações de agregação ("aggs"). Este retorno informa que existem 2 registros (docCount) com siblingsnumber igual a 0 ou 1 (buckets "0"). Da mesma forma, esta resposta informa que existem 5 registros (docCount) com siblingsnumber igual a 2 ou 3 (buckets "2").

Resposta JSON

{
"count": 0,
"totalHits": 7,
"took": 1,
"hits": [],
"aggs": {
"siblingsnumber": {
"buckets": {
"0": {
"docCount": 2,
"key": "0"
},
"2": {
"docCount": 5,
"key": "2"
}
}
}
}
}

JOIN

Se for necessário obter informações de duas entidades na mesma consulta, o atributo "mdmValuesQuery" pode ser usado para fazer um Join. Por exemplo, obter todos os registros do modelo de dados "matricula" onde o id do curso é "ADMM" e o gênero do estudante é feminino.

Requisição JSON
{
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "matriculaGolden"
},
{
"mdmFilterType": "TERM_FILTER",
"mdmKey": "mdmGoldenFieldAndValues.courseid.raw",
"mdmValue": "ADMM"
},
{
"mdmFilterType": "TERMS_FILTER",
"mdmKey": "mdmGoldenFieldAndValues.staudentid.raw",
"mdmValuesField": "mdmGoldenFieldAndValues.staudentid",
"mdmValuesQuery": {
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "studentGolden"
},
{
"mdmFilterType": "TERM_FILTER",
"mdmKey": "mdmGoldenFieldAndValues.gender.raw",
"mdmValue": "F"
}
]
}
}
]
}


Resposta JSON

{
"count": 2,
"totalHits": 2,
"took": 2,
"hits": [
{
"mdmCounterForEntity": 17,
"mdmGoldenFieldAndValues": {
"mdmstartdate": "1970-01-01T00:16:52Z",
"staudentid": "1",
"mdmstatus": "1",
"absence": "1",
"mdmenddate": "1970-01-01T00:16:52Z",
"courseid": "ADMM"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "matriculaGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"d8ac66b0c47e11e7b5e60242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"95e597a394248be112ffa3c7a3d29f0e"
]
},
"_score": 4.115316,
"mdmLastUpdated": "2018-04-08T14:33:37.827Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "ADMM 1 1",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-08T12:17:53Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_studentcourse": [
"d8ac66b0c47e11e7b5e60242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"studentcourse": {
"code": "7"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "f3fd7d20c3e611e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "d8ad7820c47e11e7b5e60242ac110003"
},
{
"mdmCounterForEntity": 21,
"mdmGoldenFieldAndValues": {
"mdmstartdate": "1970-01-01T00:16:52Z",
"staudentid": "2",
"mdmstatus": "1",
"absence": "3",
"mdmenddate": "1970-01-01T00:16:52Z",
"courseid": "ADMM"
},
"mdmPotentialMergePending": false,
"mdmEntityType": "matriculaGolden",
"mdmApplicationIdMasterRecordId": {
"bab945f0c3e911e792b20242ac110003": [
"d8b34480c47e11e7b5e60242ac110003"
],
"0a0829172fc2433c9aa26460c31b78f0": [
"26d179859d58f75f9ef231b518a78063"
]
},
"_score": 4.0506115,
"mdmLastUpdated": "2018-04-08T14:34:27.390Z",
"mdmTenantId": "b9184120c3de11e7afee0242ac110003",
"mdmMasterCount": 2,
"mdmProfileTitle": "ADMM 2 1",
"mdmFlaggedFieldIds": [],
"mdmApplicationIdMasterRecord": {},
"mdmCreated": "2017-11-08T12:17:53Z",
"mdmApplicationIdStagingTypeMasterRecordId": {
"bab945f0c3e911e792b20242ac110003_studentcourse": [
"d8b34480c47e11e7b5e60242ac110003"
]
},
"mdmCrosswalk": [
{
"mdmApplicationId": "bab945f0c3e911e792b20242ac110003",
"mdmConnectorId": "",
"mdmCrossreference": {
"studentcourse": {
"code": "8"
}
}
}
],
"mdmErrors": [],
"mdmEntityTemplateId": "f3fd7d20c3e611e792b20242ac110003",
"mdmPreviousIds": [],
"mdmId": "d8b47d00c47e11e7b5e60242ac110003"
}
]
}

GEOHASH GRID

Esta agregação permite agrupar pontos geográficos próximos para mostrar em regiões do mapa com mais registros ou ocorrências.

A consulta é muito simples, e para consultar usando este operador você precisa ter um campo de endereço (que tem nos bastidores um campo geopoint), ou você precisa ter um campo geopoint.

O campo geopoint armazena as informações de latitude e longitude, as coordenadas no mapa global.

Vamos ver a consulta e como funciona:

Requisição JSON
{
"aggregationList": [
{
"type": "GEOHASH_GRID",
"name": "grid",
"params": [
"mdmGoldenFieldAndValues.coordinates", 5
]
}
]
}

Para esta consulta, esperamos que o resultado seja similar ao seguinte Json:

{
"count": 0,
"totalHits": 3087,
"took": 120,
"hits": [],
"aggs": {
"grid": {
"buckets": {
"6gm62": {
"docCount": 1356,
"key": "6gm62"
},
"dnrgj": {
"docCount": 184,
"key": "dnrgj"
},
"srq54": {
"docCount": 108,
"key": "srq54"
},
"dq25d": {
"docCount": 106,
"key": "dq25d"
},
"evfx4": {
"docCount": 29,
"key": "evfx4"
},
"djn0w": {
"docCount": 28,
"key": "djn0w"
}
}
}
}
}

Para entender o campo Geohash, por favor, consulte este link: http://geohash.gofreerange.com/

Em poucas palavras, os hashes retornados referem-se a localizações específicas no mapa, como na seguinte imagem:

Outros Exemplos

Esta agregação fornece filtragem de dados para ser usada em conjunto com sub agregações. Exemplo, isso agregará a soma de ausências por estudante para o ano de 1970 e o ano de 2018. Neste caso, é usado o tipo de agregação FILTER para filtrar registros de 1970 e 2018 separadamente. O resultado da agregação de 1970 será retornado no atributo "Seventy" assim como o resultado da agregação de 2018 será retornado no atributo "Eighteen".

Este exemplo usa o atributo "aggregationKeyResolver" em "subAggregations". Este atributo "aggregationKeyResolver" é para obter algum campo de outro modelo de dados relacionado ao modelo de dados atual.

Exemplo, obter todos os registros golden de clientes.

Requisição JSON
{ 
"mustList": [
{
"mdmFilterType": "TYPE_FILTER",
"mdmValue": "matriculaGolden"
}
],
"aggregationList": [
{
"type": "FILTER",
"name": "Seventy",
"queryParam": {
"mustList": [
{
"mdmFilterType": "RANGE_FILTER",
"mdmKey": "mdmGoldenFieldAndValues.mdmstartdate",
"mdmRangeValues": [
"1970-01-01",
"1970-12-31"
]
}
]
},
"subAggregations": [
{
"type": "TERM",
"name": "students",
"params": [
"mdmGoldenFieldAndValues.staudentid.raw"
],
"aggregationKeyResolver": {
"targetType": "studentGolden",
"targetField": "mdmGoldenFieldAndValues.staudentid.raw",
"targetFieldsToResolve": [
"mdmGoldenFieldAndValues.staudentid","mdmGoldenFieldAndValues.mdmname"
]
},
"subAggregations": [
{
"type": "SUM",
"name": "absenceSum",
"params": [
"mdmGoldenFieldAndValues.absence"
]
}
]
}
]
},
{
"type": "FILTER",
"name": "Eighteen",
"queryParam": {
"mustList": [
{
"mdmFilterType": "RANGE_FILTER",
"mdmKey": "mdmGoldenFieldAndValues.mdmstartdate",
"mdmRangeValues": [
"2018-01-01",
"2018-12-31"
]
}
]
},
"subAggregations": [
{
"type": "TERM",
"name": "students",
"params": [
"mdmGoldenFieldAndValues.staudentid.raw"
],
"aggregationKeyResolver": {
"targetType": "studentGolden",
"targetField": "mdmGoldenFieldAndValues.staudentid.raw",
"targetFieldsToResolve": [
"mdmGoldenFieldAndValues.staudentid","mdmGoldenFieldAndValues.mdmname"
]
},
"subAggregations": [
{
"type": "SUM",
"name": "absenceSum",
"params": [
"mdmGoldenFieldAndValues.absence"
]
}
]
}
]
}
]
}

Resposta JSON

{
"count": 0,
"totalHits": 10,
"took": 1,
"hits": [],
"aggs": {
"Eighteen": {
"docCount": 0,
"aggregations": {
"students": {
"buckets": {}
}
}
},
"Seventy": {
"docCount": 10,
"aggregations": {
"students": {
"buckets": {
"1": {
"docCount": 1,
"key": "1",
"aggregations": {
"absenceSum": {
"value": 1,
"valueAsString": "1.0"
}
},
"resolved": [
{
"mdmGoldenFieldAndValues.staudentid": "1",
"mdmGoldenFieldAndValues.mdmname": "Joana Silva da Cunha"
}
]
},
"2": {
"docCount": 2,
"key": "2",
"aggregations": {
"absenceSum": {
"value": 5,
"valueAsString": "5.0"
}
},
"resolved": [
{
"mdmGoldenFieldAndValues.staudentid": "2",
"mdmGoldenFieldAndValues.mdmname": "Carla Paula"
}
]
},
"3": {
"docCount": 3,
"key": "3",
"aggregations": {
"absenceSum": {
"value": 4,
"valueAsString": "4.0"
}
},
"resolved": [
{
"mdmGoldenFieldAndValues.staudentid": "3",
"mdmGoldenFieldAndValues.mdmname": "Antônio dos Santos"
}
]
},
"4": {
"docCount": 2,
"key": "4",
"aggregations": {
"absenceSum": {
"value": 5,
"valueAsString": "5.0"
}
},
"resolved": [
{
"mdmGoldenFieldAndValues.staudentid": "4",
"mdmGoldenFieldAndValues.mdmname": "Ana dos Santos"
}
]
},
"5": {
"docCount": 1,
"key": "5",
"aggregations": {
"absenceSum": {
"value": 1,
"valueAsString": "1.0"
}
},
"resolved": [
{
"mdmGoldenFieldAndValues.staudentid": "5",
"mdmGoldenFieldAndValues.mdmname": "Eduardo da Silva"
}
]
},
"6": {
"docCount": 1,
"key": "6",
"aggregations": {
"absenceSum": {
"value": 1,
"valueAsString": "1.0"
}
},
"resolved": [
{
"mdmGoldenFieldAndValues.staudentid": "6",
"mdmGoldenFieldAndValues.mdmname": "Juliana da Rosa Silva"
}
]
}
}
}
}
}
}
}

No próximo capítulo

Aprenda como construir consultas nomeadas com a amostra de dados clicando ➡️ Named Queries.