private static IAggregationContainer GetAgg_name_FamilyName(AggregationContainerDescriptor <familyname> agg, FamilyNameSearchParam ci, List <string> fns = null) { var size = ci.pg_index == 0 ? ci.name_num_max : 1; if (!string.IsNullOrWhiteSpace(ci.Familyname)) { size = ci.familyname_num_max * ci.name_num_max * ci.com_num_max; } agg.Filters("fn", fs => fs .NamedFilters(nf => GetNamedFilters_FamilyName(nf, "fn_" + ci.ptype.ToString(), fns)) .Aggregations(ca => ca.Terms("name", t => t.Field(ci.ptype.ToString()).Size(size)))); if (!string.IsNullOrWhiteSpace(ci.Familyname)) { if (string.IsNullOrWhiteSpace(ci.areacode)) { agg.Terms("carea", t => t .Field("cmarea").Size(32)); } else if (ci.areacode.Length == 2) { agg.Terms("carea", t => t .Field("carea").Size(24)); } } return(agg); }