示例#1
0
        private void CriarIndice()
        {
            List<INDICE> indices = new List<INDICE>();
            Dictionary<VOCABULARIO,int> dicIndice = new Dictionary<VOCABULARIO,int>();
            foreach (var termo in Termos)
            {
                VOCABULARIO voc = new VOCABULARIO();
                //vai criar um termo na base caso não exista e retornar com seu ID
                voc = _vocabularioRepositorio.GetVocabularioByTermo(termo);

                if (dicIndice.ContainsKey(voc))
                {
                    //existe então adiciona mais um na frequencia do termo no documento
                    dicIndice[voc]++;
                }
                else
                {
                    //caso contrario será um
                    dicIndice[voc] = 1;
                }
            }

            //implementa a lista de indices para o bulkInsert no banco já ordenada pela frequencia
            foreach (var iDic in dicIndice.OrderByDescending(d =>d.Value))
            {
                INDICE indice = new INDICE();
                indice.IND_DOCUMENTO = Documento.DOC_ID;
                indice.IND_VOCABULARIO = iDic.Key.VOC_ID;
                indice.IND_FREQUENCIA = iDic.Value;
                indices.Add(indice);
            }

            _indiceRepositorio.InsereBulkIndice(indices);
        }
        private VOCABULARIO InsereVocabulario(VOCABULARIO vocabulario)
        {
            _context.VOCABULARIOs.Add(vocabulario);

            Save();

            return _context.VOCABULARIOs.FirstOrDefault(v => v.VOC_TERMO == vocabulario.VOC_TERMO);
        }
 public VOCABULARIO GetVocabularioByTermo(string termo)
 {
     VOCABULARIO vocabulario = _context.VOCABULARIOs.FirstOrDefault(v => v.VOC_TERMO == termo);
     //Se for nulo deve criar o termo na base de dados
     if (vocabulario == null )
     {
         VOCABULARIO voc = new VOCABULARIO();
         voc.VOC_TERMO = termo;
         return InsereVocabulario(voc);
     }
     return vocabulario;
 }