//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("精密铝合金结构制造", "昌达铸造"); }