Map<String, FilterBuilder> assigneeFilters = Maps.newHashMap(filters);
assigneeFilters.remove("__isAssigned");
assigneeFilters.remove(fieldName);
StickyFacetBuilder assigneeFacetBuilder = new StickyFacetBuilder(esQuery, assigneeFilters);
BoolFilterBuilder facetFilter = assigneeFacetBuilder.getStickyFacetFilter(fieldName);
FilterAggregationBuilder facetTopAggregation = assigneeFacetBuilder.buildTopFacetAggregation(fieldName, facetName, facetFilter, DEFAULT_ISSUE_FACET_SIZE);
List<String> assignees = Lists.newArrayList(query.assignees());
UserSession session = UserSession.get();
if (session.isLoggedIn()) {
assignees.add(session.login());
}
facetTopAggregation = assigneeFacetBuilder.addSelectedItemsToFacet(fieldName, facetName, facetTopAggregation, assignees.toArray());
// Add missing facet for unassigned issues
facetTopAggregation.subAggregation(
AggregationBuilders
.missing(facetName + "_missing")
.field(fieldName)
);