I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo...

33
i-Jus i-Jus Busca em Diário Busca em Diário Oficial Oficial Bruno Edson Filho Bruno Edson Filho Daniel Marques Oliveira Daniel Marques Oliveira José de Anchieta Caraciolo José de Anchieta Caraciolo Netto Netto Max José Lins Tímoteo Max José Lins Tímoteo

Transcript of I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo...

Page 1: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

i-Jusi-JusBusca em Diário OficialBusca em Diário Oficial

Bruno Edson FilhoBruno Edson FilhoDaniel Marques OliveiraDaniel Marques Oliveira

José de Anchieta Caraciolo NettoJosé de Anchieta Caraciolo NettoMax José Lins TímoteoMax José Lins Tímoteo

Page 2: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

RoteiroRoteiro

MotivaçãoMotivação Arquitetura Básica do LuceneArquitetura Básica do Lucene Componentes do sistemaComponentes do sistema Estrutura do ArquivoEstrutura do Arquivo ConsultasConsultas ResultadosResultados

Page 3: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

MotivaçãoMotivação

AnchietaAnchieta

Page 4: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ContextoContexto

Necessidade de Necessidade de buscar informações nos buscar informações nos Diários Oficiais do paísDiários Oficiais do país (advogados (advogados autônomos, escritórios, empresas autônomos, escritórios, empresas terceirizadas pelos escritórios, etc.)terceirizadas pelos escritórios, etc.)

Os sites existentes Os sites existentes são muito confusos e são muito confusos e apresentam muita dificuldade quando se apresentam muita dificuldade quando se procura informações, pois são publicados procura informações, pois são publicados como um documento inteiro ou são como um documento inteiro ou são publicados em partes menores.publicados em partes menores.

Page 5: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ExemplosExemplos

Diário Oficial de PernambucoDiário Oficial de Pernambuco http://www.fisepe.pe.gov.br/cepe/diario.htmhttp://www.fisepe.pe.gov.br/cepe/diario.htm

Diário Oficial da União Diário Oficial da União (http://www.in.gov.br/)(http://www.in.gov.br/) Diários Oficiais EletrônicosDiários Oficiais Eletrônicos

http://ediarios.in.gov.br/ediarios/pages/seguranca/http://ediarios.in.gov.br/ediarios/pages/seguranca/login.jsplogin.jsp

PrivadosPrivados Ledj (Sistema de Leitura Eletrônica dos Diários Ledj (Sistema de Leitura Eletrônica dos Diários

Oficiais e da Justiça)Oficiais e da Justiça) http://www.ledj.com.br/http://www.ledj.com.br/

DOINET (Diário Oficial na Internet)DOINET (Diário Oficial na Internet) http://www.doi.com.br/http://www.doi.com.br/

Page 6: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

SoluçãoSolução

Um sistema com Um sistema com interface simples e agradável, interface simples e agradável, semelhante aos sistemas de busca conhecidos semelhante aos sistemas de busca conhecidos (Ex: Google, Yahoo!, Radix)(Ex: Google, Yahoo!, Radix)

Busca nos Diários OficiaisBusca nos Diários Oficiais Termos (Termos (frase exata e expressões boleanas)frase exata e expressões boleanas) Critérios de ordenação (Critérios de ordenação (data de publicação ou data de publicação ou

relevânciarelevância)) ResultadosResultados

Data de publicaçãoData de publicação Documento em cache com salientadorDocumento em cache com salientador Local do Diário OficialLocal do Diário Oficial Endereço da versão OficialEndereço da versão Oficial

Page 7: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Arquitetura Básica do Arquitetura Básica do LuceneLucene

Bruno EdsonBruno Edson

Page 8: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Arquitetura Arquitetura Básica do Básica do LuceneLucene

Page 9: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Arquitetura Básica - LuceneArquitetura Básica - Lucene

Objetos de acesso à dados Objetos de acesso à dados (acessíveis)(acessíveis)

Camada de negóciosCamada de negócios acesso aos arquivos de índices (sistema)acesso aos arquivos de índices (sistema)

Camada de pesquisa (parser) / Camada de pesquisa (parser) / IndexaçãoIndexação

7 pacotes (org.apache.lucene.*):7 pacotes (org.apache.lucene.*): analisys, document, index, queryparser, analisys, document, index, queryparser,

search, store, utilsearch, store, util

Page 10: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Pacotes - LucenePacotes - Lucene

analysys: converter texto -> índicesanalysys: converter texto -> índices document: relacionada a arquivosdocument: relacionada a arquivos index: relacionada aos índicesindex: relacionada aos índices queryparser: QueryParser, parser queryparser: QueryParser, parser

consultaconsulta search: busca pelos índicessearch: busca pelos índices store: abstração dados (BD, arq., RAM)store: abstração dados (BD, arq., RAM) util: utilizado pelos outros (vetor, tabela)util: utilizado pelos outros (vetor, tabela)

Page 11: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Tipos de Campos - LuceneTipos de Campos - Lucene

Field.KeywordField.Keyword Field.UnIndexedField.UnIndexed Field.UnStoredField.UnStored Field.TextField.Text

Page 12: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Fluxo de Execução - LuceneFluxo de Execução - Lucene Consulta:Consulta:

QueryParser: Traduzir a consultaQueryParser: Traduzir a consulta Realiza a consultaRealiza a consulta Obtém acesso aos índicesObtém acesso aos índices Obtém acesso aos arquivos (BD, arq., Obtém acesso aos arquivos (BD, arq.,

RAM)RAM) Indexação:Indexação:

Aquisição do documento (processamento)Aquisição do documento (processamento) Análise (gera índices)Análise (gera índices) Grava nos índicesGrava nos índices Grava nos arquivos (BD, arq., RAM)Grava nos arquivos (BD, arq., RAM)

Page 13: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Componentes do Componentes do SistemaSistema

DanielDaniel

Page 14: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Componentes do SistemaComponentes do Sistema

Indexador

Índice Invertido

Analisador HTML

Pesquisador

HTTrackAnalisador

Léxico

Analisador LéxicoConsulta

Parser da Consulta

Page 15: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Componentes do SistemaComponentes do Sistema

Analisador LéxicoAnalisador Léxico Converte todas as letras para minúsculasConverte todas as letras para minúsculas Retira pontos, barras e hífen de números Retira pontos, barras e hífen de números

de identificação concatenando as suas de identificação concatenando as suas partespartes

CPF, CNPJ, RG, OAB etcCPF, CNPJ, RG, OAB etc Retira pontos, barras, hífen e espaços Retira pontos, barras, hífen e espaços

presentes no meio de frasespresentes no meio de frases Retira acentos e cedilhasRetira acentos e cedilhas Retira stopwordsRetira stopwords

Page 16: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Campos ExistentesCampos Existentes

Título (Field.Text) Título (Field.Text) Publicação (Field.Keyword)Publicação (Field.Keyword) Site (Field.Keyword) Site (Field.Keyword) Cache (Field.UnIndexed) Cache (Field.UnIndexed) Arquivo (Field.UnIndexed)Arquivo (Field.UnIndexed) Conteudo (Field.Text)Conteudo (Field.Text)

Page 17: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Estrutura do ArquivoEstrutura do ArquivoBruno EdsonBruno Edson

Page 18: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Estrutura do ArquivoEstrutura do Arquivo

Estrutura de ÍndicesEstrutura de Índices Multi-índiceMulti-índice CompostoComposto

Conteúdo:Conteúdo: SegmentosSegmentos DocumentosDocumentos CamposCampos TermosTermos

Page 19: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Escolha de estrutura de índicesEscolha de estrutura de índices

Cálculo do nº. de arquivos abertosCálculo do nº. de arquivos abertos Multi = 15300 (índices e campos)Multi = 15300 (índices e campos) Composto = 900 (índices)Composto = 900 (índices)

PerformancePerformance Composto é 5-10% mais lenta que o Composto é 5-10% mais lenta que o

multimulti Composto é default.Composto é default.

Page 20: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Arquivos de Índices CompostosArquivos de Índices Compostos

Diferença visívelDiferença visível Multi = 10 arq’s.Multi = 10 arq’s. Composto = 2 arq’s.Composto = 2 arq’s.

Poucos recursosPoucos recursos Redução do número de arquivosRedução do número de arquivos

Exceto: segmentos, documentos, Exceto: segmentos, documentos, campos e termos.campos e termos.

Único .csf por segmentoÚnico .csf por segmento

Page 21: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Arquivos de Índices CompostosArquivos de Índices Compostos

Exemplo:Exemplo: Multi:Multi:

Composto:Composto:

Page 22: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Criando um índice compostoCriando um índice composto

Opção defaultOpção default Explicitar no códigoExplicitar no código

Método: setUseCompound(boolean)Método: setUseCompound(boolean)IndexWriter writer = new IndexWriter writer = new

IndexWriter(indexDir,IndexWriter(indexDir,

new StandardAnalyzer(), true);new StandardAnalyzer(), true);

writer.setUseCompoundFile(true);writer.setUseCompoundFile(true);

Possibilidade de trocaPossibilidade de troca

Page 23: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

Conversão entre estruturasConversão entre estruturas

Suporte durante indexaçãoSuporte durante indexação IndexWriterIndexWriter setUseCompoundFiles(boolean)setUseCompoundFiles(boolean) Código:Código:

IndexWriter writer = new IndexWriter(indexDir,IndexWriter writer = new IndexWriter(indexDir,

new StandardAnalyzer(), false);new StandardAnalyzer(), false);

writer.setUseCompoundFile(true);writer.setUseCompoundFile(true);

writer.optimize();writer.optimize();

writer.close();writer.close();

Page 24: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ConsultasConsultas

MaxMax

Page 25: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ConsultaConsulta

Biblioteca LuceneBiblioteca Lucene IndexSearcherIndexSearcher Query (e subclasses)Query (e subclasses) QueryParserQueryParser HitsHits

Page 26: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ConsultaConsulta

Idéia básica de uma consultaIdéia básica de uma consulta QueryParserQueryParser QueryQuery IndexSearcherIndexSearcher HitsHits DocumentDocument

Page 27: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ConsultaConsulta

Tipos de consultaTipos de consulta Or (padrão):Or (padrão):

termo1 termo2termo1 termo2 Termo1 OR termo2Termo1 OR termo2

And:And: +termo1 +termo2+termo1 +termo2 termo1 AND termo2termo1 AND termo2

Parênteses:Parênteses: (termo1 OR termo2) AND termo3(termo1 OR termo2) AND termo3

......

Page 28: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ConsultaConsulta

Tipos de consultaTipos de consulta Expressão(retirando stopwords):Expressão(retirando stopwords):

““termo1 termo2”termo1 termo2” *:*:

termo1*termo1* Palavras semelhantes:Palavras semelhantes:

termo1~termo1~

Page 29: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ScoreScore

TiposTipos PublicaçãoPublicação RelevânciaRelevância

Page 30: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ScoreScore

Biblioteca LuceneBiblioteca Lucene Métodos da classe Hits:Métodos da classe Hits:

length()length() doc(n)doc(n) id(n)id(n) score(n)score(n)

Page 31: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ResultadosResultados

DanielDaniel

Page 32: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ResultadosResultados

Quantidade de termosQuantidade de termos 200.000200.000

Quantidade de documentosQuantidade de documentos 18001800

Muitos nomes frequentesMuitos nomes frequentes SistemaSistema

http://ijuz.no-ip.info/http://ijuz.no-ip.info/jurijuri Ou Ou http://201.8.211.225/http://201.8.211.225/jurijuri Obs: o sistema está rodando no computador de Obs: o sistema está rodando no computador de

Daniel (dmo), quando quiser acessar programar Daniel (dmo), quando quiser acessar programar um horário para que ele ative o sistemaum horário para que ele ative o sistema

Page 33: I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo.

ReferênciasReferências Gospodnetic, Otis & Hatcher, Erik. Lucene in Gospodnetic, Otis & Hatcher, Erik. Lucene in

action. Manning Publications Co, 2005.action. Manning Publications Co, 2005. CyberNeko Tools for XNI. CyberNeko Tools for XNI.

http://www.apache.org/~http://www.apache.org/~andycandyc//nekoneko/doc/doc.. Jakarta Lucene. Jakarta Lucene. httphttp://://jakartajakarta.apache..apache.orgorg//lucenelucene.. JLex: A Lexical Analyzer Generator for Java(TM). JLex: A Lexical Analyzer Generator for Java(TM).

httphttp://www.://www.cscs..princetonprinceton..eduedu/~/~appelappel//modernmodern//javajava//JLexJLex//..

Baeza-Yates, Ricardo & Ribeiro-Neto, Berthier. Baeza-Yates, Ricardo & Ribeiro-Neto, Berthier. Modern Information Retrieval. ACM Press, 1999.Modern Information Retrieval. ACM Press, 1999.

CEPE - Diário Oficial do Estado de Pernambuco. CEPE - Diário Oficial do Estado de Pernambuco. httphttp://www.://www.fisepefisepe.pe..pe.govgov..brbr//cepecepe//diariodiario..htmhtm..