Solr - Indexação e Busca com ferramenta Open Source

16
Ifactory Solutions©2009 Solr Marcelo Rodrigues

description

Solr - Indexação e Busca com ferramenta Open Source

Transcript of Solr - Indexação e Busca com ferramenta Open Source

Page 1: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions©2009

SolrMarcelo Rodrigues

Page 2: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Introdução

• Projeto Apache Lucene

• Indexação e busca de alta performance

• Spell checking, hit highlighting, etc.

Page 3: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Instalação & Configuração

• Instalação simples (acompanha Jetty ou Tomcat embedded)

• Arquivos de configuração principais (~/solr/conf)– schema.xml: Onde são definidos os tipos de dados que serão usados,

existem muitos tipos disponíveis OOTB• String - solr.StrField• Int - solr.TrieIntField• Boolean - solr.BoolField

* Class names starting with "solr" refer to java classes in the org.apache.solr.analysis package.

– solrconfig.xml: Descreve como os usuários devem interagir com os dados indexados. Parâmetros de indexação, atualização, queries, caching e etc.

Page 4: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Painel de administração

• LucidWorks/Start.sh

Page 5: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Conceitos

• O Solr basicamente recebe dados (indexing, updating) e fornece dados de acordo com a consulta (querying).

• Unidade básica de informação = Documento

• 1.000 receitas, como encontrar a que você quer?

– Índices! Ex: Ingredientes...– Objetivo -> Responder perguntas:

“Que refeição asiática que possui laranjascomo ingrediente é preparada em menosDe 30 minutos?”* Este 'field' deve ser definido no schema.xml

– Field Type• Ingrediente: String• Tempo de preparo: date/time

Page 6: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Conceitos

• UniqueKey – Para documentos que possuem chaves primárias

• Default Search Field – Caso nenhum 'field' seja especificado na query

• Default operator – Busca elementos que atendem exatamente os critérias da query (AND) ou apenas parcialmente (OR)

• Copy Field - Cria uma cópia de um 'field' caso seja necessário

<schema> <types> <fields> <uniqueKey> <defaultSearchField> <solrQueryParser defaultOperator> <copyField></schema>

Page 7: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Conceitos

• Analyzer – Cria um stream de tokens, processa o texto de um tipo de campo.<fieldType name="nametext" class="solr.TextField"> <analyzer class="org.apache.lucene.analysis.WhitespaceAnalyzer"/></fieldType> * O processo de análise ocorre na indexação e na consulta.

• Tokenizer – Dividem o stream em tokens (unidades léxicas)• Filter – Processa tokens para formar novos streams de tokens.Ex: 2 Tokens, “Rio”,”Janeiro” = “RJ”

<fieldType name="nametext" class="solr.TextField"><analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EnglishPorterFilterFactory"/> </analyzer></fieldType>

* Este último filter usa Word Stemming (achar palavras semelhantes. ex: “hugging” > “hugged”)

Page 8: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Indexando

• Solr pode indexar:– XML– CSV (dados separados por vírgula)– Informações recuperadas de Bancos de Dados– Arquivos comuns como: MS Word e PDF

• Como indexar:– Framework Solr Cell– Enviar arquivos XML em requisições HTTP– APIs Java (ex: SolrJ)

* Também é possível indexar arquivos com a ferramenta curl (Custom URL) do Solr e através do comando 'wget' (unix).

Page 9: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Na prática - SolrJ

• Indexando 2 documentos

Page 10: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Na prática - SolrJ

• Dependências

Page 11: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Na prática - SolrJ

• Criando query para recuperar documento

Page 12: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Na prática - SolrJ

• Consulta do painel de Admin

Page 13: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Na prática - SolrJ

• Resultado em XML

Page 14: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Na prática - SolrJ

• Procurando Queijos cujo preço está acima de $ 20

•* Código comentado mostra como remover objetos do banco de dados de busca

Page 15: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Logging - SolrJ

Níveis de prioridade: [FINEST, FINE, CONFIG, INFO, WARNING, SEVERE]

INFO: [] webapp=/solr path=/select params={q=name:wheel&version=1&wt=javabin} hits=1 status=0 QTime=2 FINE: solrconfig.xml admin/defaultQuery/text()=solr

* Repare que o LOG LEVEL selecionado é replicado para os outros pacotes de acordo com a hierarquia.

Page 16: Solr - Indexação e Busca com ferramenta Open Source

Ifactory Solutions ©2009

Na prática - SolrJ

• Resultado em XML