Posted by Brunno Attorre On February - 28 - 2014 2 Comments

Ferramentas de busca em texto são, no mundo da computação moderna, um dos principais mecanismos para o sucesso de sua aplicação Web. Seja na formulação de um site de Web Commerce ou na busca por posts em seu blog, uma biblioteca capaz de gerenciar seus dados e executar buscas em seu conteúdo é parte fundamental de um sistema.

Dentro desse contexto, apresentaremos nesse post a ferramenta Apache Solr. Essa ferramenta, criada pela Apache Foundation, é um sistema de indexação e busca de conteúdos textuais, utilizando a biblioteca do Apache Lucene para realizar as buscas em textos mais efetivamente.

Voltando um pouco para a história por trás dessa biblioteca, o Apache Lucene foi criado em 1999 por Doung Cutting como uma solução para buscas textuais e se juntou ao grupo de softwares patrocinados pela Apache em 2001. Hoje em dia, o Apache Lucene pode ser considerado uma das principais vertentes dentro do mundo de análise de dados e uma ferramenta fundamental para a aplicação de conceitos de análise de informações.

Baseado em cima dessa biblioteca, o Apache Solr teve início em 2004 pelas mãos do desenvolvedor Yonik Seeley. Seu objetivo foi de criar uma aplicação capaz de armazenar documentos de forma indexada, utilizando o conceito de índice invertido (que discutiremos mais a frente), e de executar buscas utilizando queries Lucene, voltando os resultados com o máximo de eficácia e performance possível.

Hoje em dia, podemos citar diversos gigantes da computação que utilizam o Apache Solr, entre eles: Netflix, Gamespot, Ebay, Sears e outros.

Como objetivo desse artigo, iremos demonstrar como instalar o Apache Solr dentro de sua máquina e como rodar as primeiras buscas dentro de seu conteúdo.

Baixando e instalando o Apache Solr

Primeiramente, para rodarmos o Apache Solr, é necessário que se instale a JDK 6 ou superior. Essa pode ser baixada e instalada no link abaixo:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Assim que sua JDK estiver instalada, precisaremos baixar a versão mais atual do Solr (4.7). Para tanto, o zip contendo essa aplicação pode ser encontrado no link:

http://ftp.unicamp.br/pub/apache/lucene/solr/4.7.0/solr-4.7.0.zip

Assim que o conteúdo estiver baixado, o arquivo compactado pode ser descompactado em uma pasta de sua preferência. Dentro dessa pasta, devemos ter uma estrutura semelhante a mostrada na figura abaixo:

Agora, nossos próximos passos será o de iniciar o Apache Solr. Iremos fazer isso dentro do Web Container Jetty, já presente nos diretórios baixados do Apache Solr. Para fazer isso, precisamos acessar a pasta em que foi descompactado a ferramenta através da linha de comando e rodar o jar start.jar, presente na pasta example. Segue abaixo um print da execução desse comando:

java -jar start.jar

Uma vez o servidor tenha subido, é possível acessar o seu servidor do Apache Solr através da URL:
http://localhost:8983/solr/

Postando e consultando nossa base de dados de exemplo

Para podermos fazer nossas primeiras consultas, precisamos carregar nosso Apache Solr com uma base de dados inicial. Para isso, com nosso servidor do Solr funcionando, podemos rodar o jar contido no diretório de exemplos para postar, através de requisições HTTP, alguns documentos XML em nossa ferramenta de busca. Para isso, basta rodar o comando abaixo:

java -jar post.jar *.xml

Uma vez nossos XMLs tenham sido postados, o próximo passo será demonstrarmos uma consulta simples dentro desses conteúdos. Primeiramente, acessamos o nosso console via browser do Solr (http://localhost:8983/solr/) e entrando em nossa collection de exemplo (collection1), conforme print abaixo:

Assim que o menu de nossa collection1 tenha sido carregado, podemos realizar nossa primeira query. Isso pode ser feito acessando o item Query do menu:

Nessa tela teremos as opções de rodar nossas queries dentro do conteúdo indexado. No campo "q", podemos executar nossas queries Lucene para filtrar os dados que desejamos visualizar. Inicialmente, esse campo está setado com o valor *:*, ou seja, para trazer todos os documentos, conforme pode ser visto ao executar a query (clicando no botão Execute Query).

Para exemplificarmos uma funcionalidade do filtro, vamos criar uma query que filtrará todo o conteúdo onde o campo name contém a palavra Samsung. Para isso basta modificarmos o campo "q" com a query "name:samsung" e rodarmos nossa consulta novamente.

Existem diversos outros tipos de consultas dentro das queries Lucene que nos permitem filtrar os dados em nossa base de documentos do Solr. Para mais detalhes, é possível encontrar um tutorial sobre as queries Lucene no link abaixo:

http://lucene.apache.org/core/2_9_4/queryparsersyntax.html

Como objetivo das próximos partes de nosso artigo do Apache Solr, iremos tratar de:

- Configurar o schema de dados dentro do Apache Solr.

- Postar e consultar arquivos no Solr através do Java.

- Melhores práticas para melhorar a performance em sua busca Lucene.

Para isso, basta ficar ligado em nosso blog TechBusters, o melhor blog de tecnologia do Brasil!

 

About the author

Brunno Attorre Entusiasta de novas tecnologias, está sempre a procura de inovações que podem mudar o mundo. Desenvolvedor Java e C++, com certificados OCJP, OCWCD e OCEEJBD, seus interesses envolvem Inteligência Artificial, Big Data, Data Analysis, BI, sistemas distribuídos e sistemas de alta performance. Google+

Be Sociable, Share!

2 Responses so far.

  1. Fábio Abenza says:

    Parabéns pelo artigo. Muito boa introdução ao Solr e tutorial de instalação.

  2. Henio Junior says:

    Parabéns pelo artigo, pois mostrou que não há mistério nesse startup do solr.


Protected by WP Anti Spam