You are on page 1of 5

Universidade Aberta

Departamento de Cincias e Tecnologia

Mestrado em Tecnologias e Sistemas Informticos Web

PESQUISA E RECUPERAO DE INFORMAO


Trabalho B
TCNICAS DE PESQUISA E RECUPERAO DE INFORMAO

O Lucene uma biblioteca de mecanismo de procura de texto altamente escalvel e de software


livre. As APIs poderosas do Lucene focam principalmente na indexao e na procura de texto. O
Apache Lucene executado em Java 8 ou superior. Tambm recomendvel usar sempre a verso
de atualizao mais recente da Java VM, Os requisitos de CPU, disco e memria baseiam-se nas
muitas escolhas feitas na implementao do Lucene (tamanho do documento, nmero de
documentos e nmero de acessos recuperados). Primeiro, deve-se baixar a distribuio Lucene
mais recente e, em seguida, extra-la para um diretrio de trabalho. So necessrios quatro JARs:
lucene-core-6.5.1.jar, o lucene-queryparser-6.5.1.jar, o lucene-analyzers-common-6.5.1.jar e o
lucene-demo-6.5.1.jar. Para produzir um subdiretrio chamado ndice que conter um ndice de
todo o cdigo-fonte Lucene digitar: Java org.apache.lucene.demo.IndexFiles -docs {path-to-
lucene}, e para pesquisar o tipo de ndice digitar Java org.apache.lucene.demo.SearchFiles ser
solicitado a fazer uma consulta.

Para usar o Lucene, um aplicativo deve criar documentos adicionando campos, criar um
IndexWriter e adicione documentos a ele com addDocument (), Chamar QueryParser.parse () para
criar uma consulta de uma sequncia de caracteres e criar um IndexSearcher e passar a consulta
para o mtodo search ().

A criao de um aplicativo de procura usando o Lucene envolve, primeiramente, a indexao de


dados, a procura de dados e a exibio de resultados de procura.

Etapas para criar aplicativos usando o Lucene

A API Lucene est dividida em vrios pacotes: org.apache.lucene.analysis,


org.apache.lucene.codecs, org.apache.lucene.document, org.apache.lucene.index,
org.apache.lucene.search, org.apache.lucene.store, org.apache.lucene.util.

O Lucene permite indexar quaisquer dados disponveis no formato textual. O Lucene pode ser
usado quase com qualquer origem de dados contanto que as informaes textuais possam ser
extradas dela. Lucene pode ser utilizado para indexar e procurar dados armazenados em
documentos HTML, Word, arquivos PDF e outros. A primeira etapa na indexao de dados
1
TCNICAS DE PESQUISA E RECUPERAO DE INFORMAO

disponibiliz-los em um formato de texto simples. Usando os analisadores e conversores de dados


customizados.

A Indexao um processo de converter os dados de texto em um formato que facilita a procura


rpida. O Lucene armazena os dados de entrada em uma estrutura de dados chamada de
ndice invertido , que armazenado no sistema de arquivos ou na memria como um conjunto de
arquivos de ndice. Ele permite que os utilizadores executem procuras rpidas por palavras-chave
e localizem os documentos que correspondem a uma determinada consulta. Antes que os dados
de texto sejam includos no ndice, eles so processados por um analisador (usando um processo
de anlise).

Anlise a converso dos dados de texto em uma unidade de procura fundamental, chamada
de termo. Durante a anlise, os dados de texto passam por vrias operaes: extrao das
palavras, remoo de palavras comuns, ignorar pontuao, reduo de palavras para o formato de
raiz, alterao das palavras para minsculas, etc. A anlise acontece imediatamente antes de
analisar a indexao e a consulta. A anlise converte os dados de texto em tokens e esses tokens
so includos como termos no ndice do Lucene.
O Lucene fornecido com vrios analisadores integrados, como o SimpleAnalyzer, o
StandardAnalyzer, StopAnalyzer, SnowballAnalyzer, e outros. Eles diferem na maneira pela qual
tokenizam o texto e aplicam os filtros.

Classes de Indexao de Ncleo


Diretrio

Uma classe abstrata que representa o local onde os arquivos de ndice so armazenados.
H duas subclasses principais normalmente usadas:

FSDirectory Uma implementao do Diretrio que armazena ndices no sistema de


arquivos real.Isso til para grandes ndices.
RAMDirectory Uma implementao que armazena todos os ndices na memria. Isso
ideal para ndices menores que podem ser completamente carregados na memria e
destrudos quando o aplicativo encerrar. Conforme o ndice mantido na memria, ele
mais rpido.
Analisador

Os analisadores so responsveis por processar os dados de texto e convert-los em


tokens armazenados no ndice. IndexWriter aceita um analisador usado para tokenizar os
dados antes de serem indexados.

2
TCNICAS DE PESQUISA E RECUPERAO DE INFORMAO

IndexWriter

Uma classe que cria ou mantm um ndice. Seu construtor aceita um booleano que
determina se um novo ndice criado ou se um ndice existente aberto. Ele fornece
mtodos para incluir, excluir ou atualizar documentos no ndice.

As alteraes feitas no ndice so inicialmente armazenadas em buffer na memria e


periodicamente esvaziadas para o diretrio de ndice.
As alteraes feitas no ndice no so visveis no IndexReader , a menos que o mtodo de
consolidao ou de fechamento do IndexWriter seja chamado. IndexWriter cria um arquivo
de bloqueio para o diretrio para impedir distoro de ndice devido a atualizaes de
ndice simultneas.

H duas classes envolvidas na incluso de dados de texto no ndice.


O Campo representa uma parte dos dados consultados ou recuperados na procura. A
classe Campo engloba o nome de campo e seu valor.
E um Documento uma coleta de campos. O Lucene tambm suporta a impulso de documentos
e campos, que um recurso til quando quiser dar importncia a alguns dos dados indexados.
Indexar um arquivo de texto envolve agrupar os dados de texto em campos, criar um documento,
preench-lo com campos e incluir o documento no ndice usando IndexWriter.

Procurador uma classe base abstrata que possui vrios mtodos de procura
sobrecarregadas. IndexSearcher uma subclasse normalmente utilizada que permite procurar
ndices armazenados em um determinado diretrio. O mtodo Procurar retorna uma coleta
ordenada de documentos classificados pelas pontuaes computadas. O Lucene calcula uma
pontuao de cada documento que corresponde a uma determinada consulta. IndexSearcher
um thread-safe, ou seja, uma instncia nica que pode ser usada por vrios encadeamentos
simultaneamente.

Termo a unidade mais fundamental de procura. Ele composto de dois elementos: o texto da
palavra e o nome do campo no qual o texto ocorre. Os objetos do termo so envolvidos na
indexao, mas so criados pelos componentes internos do Lucene.

Consulta uma classe base abstrata para procuras. Procurar por uma palavra ou frase especificada
envolve agrup-la em um termo, incluir os termos em um objeto de consulta e transmitir esse
objeto de consulta para os mtodos de procura do IndexSearcher.
O Lucene fornecido com vrios tipos de implementaes de consulta concretas, como
TermQuery, BooleanQuery, PhraseQuery, PrefixQuery, RangeQuery, MultiTermQuery,
FilteredQuery, SpanQuery, etc.

3
TCNICAS DE PESQUISA E RECUPERAO DE INFORMAO

IndexSearcher retorna uma matriz de referncias nos resultados de procura classificados, como
documentos que correspondem a uma determinada consulta. As classes primrias envolvidas na
recuperao dos resultados de procura so ScoreDoc e TopDocs.
ScoreDoc

Um ponteiro simples para um documento contido nos resultados de procura. Isso engloba
a posio de um documento no ndice e a pontuao calculada pelo Lucene.

TopDocs

Engloba o nmero total de resultados de procura e uma matriz de ScoreDoc.

As operaes bsicas de ndice incluem remover e impulsionar documentos. O Lucene fornece a


interface IndexReader que permite executar essas operaes em um ndice.
IndexReader uma classe abstrata que fornece vrios mtodos para aceder o ndice. O Lucene
refere internamente os documentos com nmeros de documentos que podem ser alterados
conforme os documentos so includos ou excludos do ndice. O nmero do documento usado
para aceder um documento no ndice. IndexReader no pode ser usado para atualizar ndices em
um diretrio para o qual o IndexWriter j est aberto. IndexReader sempre procura pela captura
instantnea do ndice quando ele estiver aberto. Quaisquer alteraes no ndice no estaro
visveis at o IndexReader ser reaberto. importante que os aplicativos que usam o Lucene
reabram os IndexReader para ver as atualizaes de ndice mais recentes.

O Lucene fornece um recurso avanado chamado classificao. Classificar os resultados da procura


por campos que indicam a posio relativa dos documentos no ndice.
Os resultados da procura tambm podem ser classificados pela ordem do ndice. O Lucene
classifica os resultados ao diminuir a relevncia, como a pontuao calculada, por padro.

O Lucene fornecido com vrios filtros integrados, como BooleanFilter, CachingWrapperFilter,


ChainedFilter, DuplicateFilter, PrefixFilter, QueryWrapperFilter, RangeFilter,
RemoteCachingWrapperFilter, SpanFilter, etc. Filtro pode ser transmitido para o mtodo de
procura do IndexSearcher para filtrar documentos que correspondem aos critrios de filtragem.

Bibliografia
Lucene https://lucene.apache.org/core/

You might also like