J'essaie de faire une agrégation sur un objet imbriqué. Ce qui suit est mon json. Le premier exemple de code ci-dessous renvoie avec succès le productCategory Id. Cependant, je souhaite renvoyer l'identifiant et le nom de la catégorie dans l'agrégation. J'ai pensé que je pourrais essayer le deuxième exemple de code ci-dessous mais cela ne fonctionne pas.
"productCategories": [{
"id":6,
"productId":6,
"categoryId":4,
"category":{
"parentId":2,
"name":"Air Fresheners",
"id":6
}
}]
Celui-ci agrège l'identifiant productCategory comme clé :
.Aggregations(aggs => aggs
.Nested("agg-categories", nested => nested
.Path(p => p.ProductCategories)
.Aggregations(r => r
.Terms("agg-category", w => w
.Field(f => f.ProductCategories.First().Id)
)
)
)
)
Mais j'ai besoin des informations sur la catégorie, et celle-ci ne fonctionne pas :
.Aggregations(aggs => aggs
.Nested("agg-categories", nested => nested
.Path(p => p.ProductCategories.First().Category)
.Aggregations(r => r
.Terms("agg-category", w => w
.Field(f => f.ProductCategories.First().Category.Id)
)
)
)
)
Si category
est simplement mappé comme object
, alors ce qui suit fonctionnera
var searchResponse = client.Search<Document>(s => s
.Aggregations(aggs => aggs
.Nested("agg-categories", nested => nested
.Path(p => p.ProductCategories)
.Aggregations(r => r
.Terms("agg-category", w => w
.Field(f => f.ProductCategories.First().Category.Id)
)
)
)
)
);
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots