예제 #1
0
        //public static IEnumerable<ES_Company> Advanced_Query()
        //{
        //    var com = new Company() { oc_code = "111111", oc_sort = oc_sort.oc_reg_capital };
        //    var status = 0;
        //    double floor = 0, ceiling = 0;

        //    DateTime start = DateTime.MinValue, end = DateTime.MinValue;
        //    if (!string.IsNullOrEmpty(com.year) && DateTime.TryParse(com.year, out start))
        //    {
        //        end = start.AddYears(1);
        //    }
        //    var s = new SearchDescriptor<ES_Company>();
        //    var qcs = new List<QueryContainer>();
        //    var qcd = new QueryContainerDescriptor<ES_Company>();
        //    //com.ToMaybe()
        //    //   .DoWhen(q => start > DateTime.MinValue, q => qcs.Add(qcd.DateRange(d => d.Field("oc_issuetime").GreaterThanOrEquals(start).LessThan(end))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_area) && !q.oc_area.Equals("00"), q => qcs.Add(qcd.Prefix(d => d.Field("oc_area").Value(q.oc_area))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_type), q => qcs.Add(qcd.Term(p => p.Field("oc_companytype").Value(q.oc_type))))
        //    //   .DoWhen(q => status >= 0, q => qcs.Add(qcd.Term(t => t.Field("oc_status").Value(status))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_trade), q => qcs.Add(q.oc_trade.Length == 1 ? qcd.Term(t => t.Field("gb_cat").Value(q.oc_trade)) : qcd.Prefix(qp => qp.Field("gb_codes").Value(q.oc_trade))))
        //    //   .DoWhen(q => floor > 0 || ceiling > 0,
        //    //                       q => qcs.Add(qcd.Range(p => p.Field("od_regm").GreaterThan(floor).LessThanOrEquals(ceiling <= 0 ? Int32.MaxValue : ceiling))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_code), q => qcs.Add(qcd.Term(t => t.Field("oc_code").Value(com.oc_code))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_number), q => qcs.Add(qcd.Term(t => t.Field("oc_number").Value(com.oc_number))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_art_person), q => qcs.Add(qcd.MatchPhrase(p => p.Field("od_faren").Query(q.oc_art_person))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_stock_holder), q => qcs.Add(qcd.Match(p => p.Field("od_gds").Query(q.oc_stock_holder))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_site), q => qcs.Add(qcd.MatchPhrase(m => m.Field("oc_sites").Query(com.oc_name).Strict())))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_member), q => qcs.Add(qcd.Match(p => p.Field("oc_members").Query(q.oc_member))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_name), q => qcs.Add(qcd.Term(p => p.Field("oc_name.oc_name_raw").Value(q.oc_name)) |
        //    //                                                               qcd.Prefix(m => m.Field("oc_name.py_oc_name").Value(q.oc_name)) |
        //    //                                                               qcd.MatchPhrase(p => p.Field("oc_name").Query(q.oc_name).CutoffFrequency(0.08d).Slop(2).MinimumShouldMatch(MinimumShouldMatch.Percentage(90)))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_addr), q => qcs.Add(qcd.Match(p => p.Field("oc_address").Query(q.oc_addr).Slop(2).CutoffFrequency(0.08d).MinimumShouldMatch(MinimumShouldMatch.Percentage(90)))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_business), q => qcs.Add(qcd.Match(p => p.Field("od_bussiness").Query(q.oc_business).Slop(2).CutoffFrequency(0.08d).MinimumShouldMatch(MinimumShouldMatch.Percentage(90)))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_reg_type), q => qcs.Add(qcd.Match(p => p.Field("od_regtype").Query(q.oc_reg_type).Slop(1).MinimumShouldMatch(MinimumShouldMatch.Percentage(90)).CutoffFrequency(0.08d))))

        //    //   //.DoWhen(q => q.oc_status >= 0, q => qcs.Add(qcd.Term(t => t.Field("oc_status").Value(q.oc_status))))
        //    //   //.DoWhen(q => !string.IsNullOrEmpty(q.oc_trade), q => qcs.Add(qcd.Nested(nest => nest.Name("trade").Query(query => query.Prefix(qp => qp.Field("trades.gb_code").Value(q.oc_trade))))))
        //    //   .DoWhen(q => !string.IsNullOrEmpty(q.oc_reg_capital_floor) || !string.IsNullOrEmpty(q.oc_reg_capital_ceiling),
        //    //                       q => qcs.Add(qcd.Range(p => p.Field("od_regm").GreaterThanOrEquals(string.IsNullOrEmpty(com.oc_reg_capital_floor) ? 0 : Convert.ToDouble(com.oc_reg_capital_floor))
        //    //                                              .LessThanOrEquals(string.IsNullOrEmpty(com.oc_reg_capital_ceiling) ? Int32.MaxValue : Convert.ToDouble(com.oc_reg_capital_ceiling)))));

        //    s.Index(Es_Consts.Company_Index).Type(Es_Consts.Company_Type).From(0).Take(100)
        //        .Query(qq => qq
        //            .FunctionScore(c => c
        //                .Functions(f => f.ScriptScore(ss => ss.Script(sc => sc.Lang("painless").Inline("_score"))))
        //                .Query(q => q.Range(r => r.Field("oc_weight").GreaterThan(1000))))

        //                    //hl
        //                    //.PreTags("<font color=\"red\">")
        //                    //.PostTags("</font>")
        //                    //.Fields(f => f.Field("oc_code"),
        //                    //        f => f.Field("od_faren"),
        //                    //        f => f.Field("od_gds"),
        //                    //        f => f.Field("oc_name"),
        //                    //        f => f.Field("oc_sites"),
        //                    //        f => f.Field("oc_address"),
        //                    //        f => f.Field("oc_members"),
        //                    //        f => f.Field("od_regtype")
        //                    );

        //    s.Sort(st => st.Field(sfd => sfd.Field("oc_weight").Descending()));

        //    var response = Client_Get().Search<ES_Company>(s);
        //    return response.Documents;
        //}
        public static void Company_NestByTrade()
        {
            var resp = ElasticsearchClient.CompanyTrade_Query("精密铝合金结构制造", "昌达铸造");
        }