A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "I-Jus Busca em Diário Oficial Bruno Edson Filho Daniel Marques Oliveira José de Anchieta Caraciolo Netto Max José Lins Tímoteo."— Transcrição da apresentação:

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

2 Roteiro Motivação Motivação Arquitetura Básica do Lucene Arquitetura Básica do Lucene Componentes do sistema Componentes do sistema Estrutura do Arquivo Estrutura do Arquivo Consultas Consultas Resultados Resultados

3 Motivação Anchieta

4 Contexto Necessidade de buscar informações nos Diários Oficiais do país (advogados autônomos, escritórios, empresas terceirizadas pelos escritórios, etc.) Necessidade de buscar informações nos Diários Oficiais do país (advogados autônomos, escritórios, empresas terceirizadas pelos escritórios, etc.) Os sites existentes são muito confusos e apresentam muita dificuldade quando se procura informações, pois são publicados como um documento inteiro ou são publicados em partes menores. Os sites existentes são muito confusos e apresentam muita dificuldade quando se procura informações, pois são publicados como um documento inteiro ou são publicados em partes menores.

5 Exemplos Diário Oficial de Pernambuco Diário Oficial de Pernambuco Diário Oficial da União (http://www.in.gov.br/) Diário Oficial da União (http://www.in.gov.br/) Diários Oficiais Eletrônicos Diários Oficiais Eletrônicos sp sp Privados Privados Ledj (Sistema de Leitura Eletrônica dos Diários Oficiais e da Justiça) Ledj (Sistema de Leitura Eletrônica dos Diários Oficiais e da Justiça) DOINET (Diário Oficial na Internet) DOINET (Diário Oficial na Internet)

6 Solução Um sistema com interface simples e agradável, semelhante aos sistemas de busca conhecidos (Ex: Google, Yahoo!, Radix) Um sistema com interface simples e agradável, semelhante aos sistemas de busca conhecidos (Ex: Google, Yahoo!, Radix) Busca nos Diários Oficiais Busca nos Diários Oficiais Termos (frase exata e expressões boleanas) Termos (frase exata e expressões boleanas) Critérios de ordenação (data de publicação ou relevância) Critérios de ordenação (data de publicação ou relevância) Resultados Resultados Data de publicação Data de publicação Documento em cache com salientador Documento em cache com salientador Local do Diário Oficial Local do Diário Oficial Endereço da versão Oficial Endereço da versão Oficial

7 Arquitetura Básica do Lucene Bruno Edson

8 Arquitetura Básica do Lucene Arquitetura Básica do Lucene

9 Arquitetura Básica - Lucene Objetos de acesso à dados (acessíveis) Objetos de acesso à dados (acessíveis) Camada de negócios Camada de negócios acesso aos arquivos de índices (sistema) acesso aos arquivos de índices (sistema) Camada de pesquisa (parser) / Indexação Camada de pesquisa (parser) / Indexação 7 pacotes (org.apache.lucene.*): 7 pacotes (org.apache.lucene.*): analisys, document, index, queryparser, search, store, util analisys, document, index, queryparser, search, store, util

10 Pacotes - Lucene analysys: converter texto -> índices analysys: converter texto -> índices document: relacionada a arquivos document: relacionada a arquivos index: relacionada aos índices index: relacionada aos índices queryparser: QueryParser, parser consulta queryparser: QueryParser, parser consulta search: busca pelos índices search: 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)

11 Tipos de Campos - Lucene Field.Keyword Field.Keyword Field.UnIndexed Field.UnIndexed Field.UnStored Field.UnStored Field.Text Field.Text

12 Fluxo de Execução - Lucene Consulta: Consulta: QueryParser: Traduzir a consulta QueryParser: Traduzir a consulta Realiza a consulta Realiza a consulta Obtém acesso aos índices Obtém acesso aos índices Obtém acesso aos arquivos (BD, arq., RAM) Obtém acesso aos arquivos (BD, arq., 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 índices Grava nos índices Grava nos arquivos (BD, arq., RAM) Grava nos arquivos (BD, arq., RAM)

13 Componentes do Sistema Daniel

14

15 Analisador Léxico Analisador Léxico Converte todas as letras para minúsculas Converte todas as letras para minúsculas Retira pontos, barras e hífen de números de identificação concatenando as suas partes Retira pontos, barras e hífen de números de identificação concatenando as suas partes CPF, CNPJ, RG, OAB etc CPF, CNPJ, RG, OAB etc Retira pontos, barras, hífen e espaços presentes no meio de frases Retira pontos, barras, hífen e espaços presentes no meio de frases Retira acentos e cedilhas Retira acentos e cedilhas Retira stopwords Retira stopwords

16 Campos 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)

17 Estrutura do Arquivo Bruno Edson

18 Estrutura do Arquivo Estrutura de Índices Estrutura de Índices Multi-índice Multi-índice Composto Composto Conteúdo: Conteúdo: Segmentos Segmentos Documentos Documentos Campos Campos Termos Termos

19 Escolha de estrutura de índices Cálculo do nº. de arquivos abertos Cálculo do nº. de arquivos abertos Multi = (índices e campos) Multi = (índices e campos) Composto = 900 (índices) Composto = 900 (índices) Performance Performance Composto é 5-10% mais lenta que o multi Composto é 5-10% mais lenta que o multi Composto é default. Composto é default.

20 Arquivos de Índices Compostos Diferença visível Diferença visível Multi = 10 arq’s. Multi = 10 arq’s. Composto = 2 arq’s. Composto = 2 arq’s. Poucos recursos Poucos recursos Redução do número de arquivos Redução do número de arquivos Exceto: segmentos, documentos, campos e termos. Exceto: segmentos, documentos, campos e termos. Único.csf por segmento Único.csf por segmento

21 Arquivos de Índices Compostos Exemplo: Exemplo: Multi: Multi: Composto: Composto:

22 Criando um índice composto Opção default Opção default Explicitar no código Explicitar no código Método: setUseCompound(boolean) Método: setUseCompound(boolean) IndexWriter writer = new IndexWriter(indexDir, new StandardAnalyzer(), true); writer.setUseCompoundFile(true); Possibilidade de troca Possibilidade de troca

23 Conversão entre estruturas Suporte durante indexação Suporte durante indexação IndexWriter IndexWriter setUseCompoundFiles(boolean) setUseCompoundFiles(boolean) Código: Código: IndexWriter writer = new IndexWriter(indexDir, new StandardAnalyzer(), false); writer.setUseCompoundFile(true);writer.optimize();writer.close();

24 Consultas Max

25 Consulta Biblioteca Lucene Biblioteca Lucene IndexSearcher IndexSearcher Query (e subclasses) Query (e subclasses) QueryParser QueryParser Hits Hits

26 Consulta Idéia básica de uma consulta Idéia básica de uma consulta QueryParser QueryParser Query Query IndexSearcher IndexSearcher Hits Hits Document Document

27 Consulta Tipos de consulta Tipos de consulta Or (padrão): Or (padrão): termo1 termo2 termo1 termo2 Termo1 OR termo2 Termo1 OR termo2 And: And: +termo1 +termo2 +termo1 +termo2 termo1 AND termo2 termo1 AND termo2 Parênteses: Parênteses: (termo1 OR termo2) AND termo3 (termo1 OR termo2) AND termo

28 Consulta Tipos de consulta Tipos de consulta Expressão(retirando stopwords): Expressão(retirando stopwords): “termo1 termo2” “termo1 termo2” *: *: termo1* termo1* Palavras semelhantes: Palavras semelhantes: termo1~ termo1~

29 Score Tipos Tipos Publicação Publicação Relevância Relevância

30 Score Biblioteca Lucene Biblioteca 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)

31 Resultados Daniel

32 Resultados Quantidade de termos Quantidade de termos Quantidade de documentos Quantidade de documentos Muitos nomes frequentes Muitos nomes frequentes Sistema Sistema Ou Ou Obs: o sistema está rodando no computador de Daniel (dmo), quando quiser acessar programar um horário para que ele ative o sistema Obs: o sistema está rodando no computador de Daniel (dmo), quando quiser acessar programar um horário para que ele ative o sistema

33 Referências Gospodnetic, Otis & Hatcher, Erik. Lucene in action. Manning Publications Co, Gospodnetic, Otis & Hatcher, Erik. Lucene in action. Manning Publications Co, CyberNeko Tools for XNI. CyberNeko Tools for XNI. Jakarta Lucene. Jakarta Lucene. JLex: A Lexical Analyzer Generator for Java(TM). JLex: A Lexical Analyzer Generator for Java(TM). Baeza-Yates, Ricardo & Ribeiro-Neto, Berthier. Modern Information Retrieval. ACM Press, Baeza-Yates, Ricardo & Ribeiro-Neto, Berthier. Modern Information Retrieval. ACM Press, CEPE - Diário Oficial do Estado de Pernambuco. CEPE - Diário Oficial do Estado de Pernambuco.


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

Apresentações semelhantes


Anúncios Google