예제 #1
0
 public Indexador(DOCUMENTO documento)
 {
     this.Documento = documento;
     this._stopWordRepositorio = new StopWordRepositorio(new RIConnectionString());
     this._indiceRepositorio = new IndiceRepositorio(new RIConnectionString());
     this._vocabularioRepositorio = new VocabularioRepositorio(new RIConnectionString());
 }
예제 #2
0
 public void InsereDocumento(DOCUMENTO documento)
 {
     _context.DOCUMENTOes.Add(documento);
     Save();
 }
예제 #3
0
 public void AtualizaDocumento(DOCUMENTO documento)
 {
     _context.Entry(documento).State = System.Data.EntityState.Modified;
     Save();
 }
예제 #4
0
        //THREAD QUE EFETUA A COLETA
        void FuncaoExecThread()
        {
            while (ThreadsExecutando && ExisteURLFila)
            {
                try
                {
                    string url = DesenfileiraURL();
                    if (!string.IsNullOrEmpty(url))
                    {
                        if (TempoEsperaConexao > 0)
                            Thread.Sleep(TempoEsperaConexao * 1000);
                        else
                            Thread.Sleep(2 * 1000);

                        DOCUMENTO documento = _documentoRepositorio.GetDocumentoByURL(url);
                        string html = GetTextoPagina(url);

                        if (!html.ToUpper().Contains(@"<!DOCTYPE HTML"))
                        {
                            EscreveLog(false, "Não é pagina web a URL para coleta. - " + url);
                            continue;
                        }

                        if (documento != null)
                        {
                            documento.DOC_HTML = html;
                            documento.DOC_DATA_ATUALIZACAO = DateTime.Now;
                            documento.DOC_INDEXADO = false;
                            _documentoRepositorio.AtualizaDocumento(documento);
                            EscreveLog(false, "Inserido URL: " + url);
                        }
                        else
                        {
                            documento = new DOCUMENTO();
                            documento.DOC_URL = url;
                            documento.DOC_DATA_INSERCAO = DateTime.Now;
                            documento.DOC_HTML = html;
                            documento.DOC_DATA_ATUALIZACAO = DateTime.Now;
                            documento.DOC_INDEXADO = false;
                            _documentoRepositorio.InsereDocumento(documento);
                            EscreveLog(false, "Atualizado URL: " + url);
                        }

                        GetNovaURL(html);
                    }
                }
                catch (Exception ex)
                {
                    EscreveLog(true, "Erro ao processar URL. Mensagem: " + ex.Message + " Excecao: "+ex.InnerException + " StackTrace: "+ex.StackTrace);
                    continue;
                }

            }
        }