200 likes | 304 Views
Recuperação de Informação usando o Apache Lucene. Henrique Borges – Mestrando em Inteligência Artificial. Quem sou eu?. Henrique Borges Formado pelo Cin Mestrando com Flávia Barros em IA Sócio da FAST Aplicativos e Soluções Tecnológicas
E N D
Recuperação de Informação usando o Apache Lucene Henrique Borges – Mestrando em Inteligência Artificial
Quem sou eu? • Henrique Borges • Formado pelo Cin • Mestrando com Flávia Barros em IA • Sócio da FAST Aplicativos e Soluções Tecnológicas • Já construí diversos crawlers e aplicações de busca, recuperação de informação e processamento de linguagem natural • Tanto academicamente quanto profissionalmente • Estágio docência • Estarei dando algumas aulas e fazendo acompanhamentos • Dúvidas no projeto da cadeira, vocês também vão poder falar comigo!
Hoje, iremos aprender a fazer o: B ...e aplicações similares
Como? • Fácil • Incluir um “.jar” que eu vou passar • Buscador boogle = new Buscador(); • Pronto! • Brincadeira... Mas nem tanto! • A API que vamos usar faz quase tudo: • Indexação e criação da base de dados • Busca • Ordenamento dos resultados • E de graça!
Apache Lucene • Uma das mais conhecidas engines para busca de texto • Eficiente • Em Java • Open-source (Apache Software License) • Engine por trás da busca de: E mais de 274 sites, softwares e aplicações Fonte: http://wiki.apache.org/lucene-java/PoweredBy
Lucene: Conceitos básicos As classes Document e Term
Lucene – Conceitos básicos • Indexdir • Diretório onde ficam armazenados os arquivos que vão compor a base de documentos • Incluem tanto os dados quanto os índices invertidos • Document • Entidade básica a ser indexada • No caso do Boogle, um site • O conjunto de documentos formam a base de dados
Lucene – Conceitos básicos • Field • “Atributo” de um documento • No caso do Boogle, um exemplo é o HTML do site • Podem ser: • Analysed (ex: o conteúdo do site) • Not_analysed (ex: URL) • Notindexed (ex: DownloadDate) • E também: • Stored: Recuperados a partir do documento, podem ser lidos depois • Notstored: Usados apenas na hora de criar o índice
Lucene: Criando um novo índice As classes IndexWriter e Analyser
Lucene: Fazendo uma busca As classes IndexSearcher, QueryParser e TopDocs
Usando o Lucene Passo-a-passo da criação de uma aplicação de RI
Criando uma aplicação de RI • Obter dados • Crawlers, arquivos texto, bases da internet, etc. • Criar e salvar a base • Usar IndexWriter e Document
Criando uma aplicação de RI • Receber a busca do usuário • Formulários, botões, listas • Gerar e executar query • Usar QueryParser ou criar instancias da classe Query • TermQuery • BooleanQuery • Usar IndexSearcher • Mostrar resultados • Ler os atributos dos documentos retornados • Escrever/desenhar na tela
Conclusões Resumindo a apresentação
Conclusões • Vimos o Lucene e sua API: • Para que serve • Conceitos básicos • Como criar um índice • Como fazer uma busca
Conclusões • Criar aplicações de RI com o Lucene é muito simples: • Obter dados • Criar base • Receber busca do usuário • Gerar query • Mostrar resultados • Dúvidas?
Abrir demonstração no Eclipse... E-mail para contato: hbas@cin.ufpe.br Obrigado!