コード例 #1
0
ファイル: ESReader.cs プロジェクト: gaoshoufenmu/NoSqlDemo
        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);
        }