public static List<AgregationsPorBucketQtde> ConsultaElasticSearchQtde(string paramatro, string type_document, string campo, int qtde_registros, string index, string url) { var node = new Uri(URI_ES); var settings = new ConnectionSettings(node); var client = new ElasticClient(settings); //var filterQuery = Query<PRODUTOS_SENSIVEIS_POCO>.Terms("descricao_detalhada_produto", paramatro.ToLower().Replace(" ", " AND ")); var result = client.Search<AgregationsPorBucketQtde>(s => s .Index(index) .Type(type_document) .SearchType(Elasticsearch.Net.SearchType.Count) //.Query(filterQuery) .Query(q => q.QueryString(d => d.DefaultField("descricao_detalhada_produto").Query(paramatro.ToLower().Replace(" ", " AND ")))) .Aggregations(a => a .Terms("name", st => st .Field(campo) .Size(qtde_registros) .Aggregations(aa => aa .ValueCount("qtde", m => m .Field(campo) ) .Cardinality("desc", m => m .Field("descricao") ) ) ) .Terms("desc", st => st .Field("DESCRICAO") .Size(qtde_registros) ) ) ); var listBuckets = (Bucket)result.Aggregations["name"]; Bucket listBucketsDesc = null; if (campo.Equals("ncm")) listBucketsDesc = (Bucket)result.Aggregations["desc"]; List<AgregationsPorBucketQtde> listResultados = new List<AgregationsPorBucketQtde>(); int count = 0; foreach (KeyItem listKeyItem in listBuckets.Items) { AgregationsPorBucketQtde resumoBusca = new AgregationsPorBucketQtde(); resumoBusca.name = listKeyItem.Key; resumoBusca.qtde = (long)((ValueMetric)listKeyItem.Aggregations["qtde"]).Value; resumoBusca.url = url; if (campo.Equals("ncm")) { //This call will Load NCM´s list only once //NcmDAO.loadStaticNCM(); //resumoBusca.desc = StaticNCM.getNCMDesc(resumoBusca.name); int countDesc = 0; foreach (KeyItem listKeyItemDesc in listBucketsDesc.Items) { if (count == countDesc) { resumoBusca.desc = listKeyItemDesc.Key; break; } countDesc++; } } listResultados.Add(resumoBusca); count++; } return listResultados; }
public static List<AgregationsPorBucketQtde> ConsultaElasticSearchCountDocumentos(string paramatro, string index) { var node = new Uri(URI_ES); var settings = new ConnectionSettings(node); var client = new ElasticClient(settings); var resultDI = client.Count<DIPOCO>(c => c .Index(index) .Type(DI) .Query(q => q .Match(m => m .OnField("tx_descricaoMercadoria") .Query(paramatro.ToLower()) ) ) ); List<AgregationsPorBucketQtde> listResultados = new List<AgregationsPorBucketQtde>(); AgregationsPorBucketQtde resumoBusca = new AgregationsPorBucketQtde(); resumoBusca.name = DI; resumoBusca.qtde = resultDI.Count; listResultados.Add(resumoBusca); //Consultando CE var resultCE = client.Count<CE_POCO>(c => c .Index(index) .Type(CE) .Query(q => q .Match(m => m .OnField("txmercadoria") .Query(paramatro.ToLower()) ) ) ); resumoBusca = new AgregationsPorBucketQtde(); resumoBusca.name = CE; resumoBusca.qtde = resultCE.Count; listResultados.Add(resumoBusca); return listResultados; }
public static List<AgregationsPorBucketQtde> ConsultaElasticSearchDocCompany(string parametro) { var node = new Uri(URI_ES); var settings = new ConnectionSettings(node); var client = new ElasticClient(settings); var filterQuery = Query<ES_DOCUMENTS_POCO>.MultiMatch(mm => mm .Query(parametro.ToLower()) .OnFields( f => f.tx_descricaoMercadoria, f => f.txmercadoria) ); var result = client.Search<AgregationsPorBucketQtde>(s => s .Index(INDEX) .SearchType(Elasticsearch.Net.SearchType.Count) .AllTypes() .Query(filterQuery) .Size(50) .Aggregations(a => a .Terms(DI, terDI => terDI .Field("tx_cnpj") ) .Terms(CE, terCE => terCE .Field("cdconsignatario") ) ) ); List<AgregationsPorBucketQtde> listResultados = new List<AgregationsPorBucketQtde>(); //DI Values var listBucketsDI = (Bucket)result.Aggregations[DI]; foreach (KeyItem listKeyItem in listBucketsDI.Items) { AgregationsPorBucketQtde resumoBusca = new AgregationsPorBucketQtde(); //incluir aqui a busca pelo nome da empresa //resumoBusca.name = DIDAO.ConsultaEmpresaDIPorCnpj(listKeyItem.Key) + "/" + listKeyItem.Key; resumoBusca.qtde = listKeyItem.DocCount; listResultados.Add(resumoBusca); } //CE Values var listBucketsCE = (Bucket)result.Aggregations[CE]; foreach (KeyItem listKeyItem in listBucketsCE.Items) { AgregationsPorBucketQtde resumoBusca = new AgregationsPorBucketQtde(); //resumoBusca.name = CEDAO.ConsultaEmpresaCEPorCnpj(listKeyItem.Key) + "/" + listKeyItem.Key; resumoBusca.qtde = listKeyItem.DocCount; listResultados.Add(resumoBusca); } return listResultados; }