More Related Content Similar to Solr - Indexação e Busca com ferramenta Open Source (20) Solr - Indexação e Busca com ferramenta Open Source3. 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.
5. 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 laranjas
como ingrediente é preparada em menos
De 30 minutos?”
* Este 'field' deve ser definido no schema.xml
– Field Type
• Ingrediente: String
• Tempo de preparo: date/time
6. 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>
7. 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”)
8. 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).
14. 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
15. 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.
Editor's Notes Field Analysis: Semelhante as &apos;stop words&apos; do Autonomy, retira preposições e palavras comuns que não trazem relevância ao conteúdo &apos;digerido&apos;.