conferencia 3: solrconfig.xml

36
solrconfig.xml

Upload: jorge-luis-betancourt-gonzalez

Post on 16-Jul-2015

50 views

Category:

Data & Analytics


3 download

TRANSCRIPT

!

solrconfig.xml

?

Define la configuración principal de cada colección/

core.

Handlers y components

conf/solrconfig.xml

Tipos de datos XMLElemento Descripción

<arr> Lista sin orden

<lst> Lista de nombre/valor sin ordenar

<bool> Valor booleano true/false

<int> Entero

<long> Long

<float> Float

<double> Double

<str> Cadena de texto

<?xml version="1.0" encoding="UTF-8" ?> <config> <luceneMatchVersion>LUCENE_4_9</luceneMatchVersion> <requestHandler name="/select" class="solr.SearchHandler" /> <requestHandler name="/update" class="solr.UpdateRequestHandler" /> <requestHandler name="/admin" class="solr.admin.AdminHandlers" /> <requestHandler name="/analysis/field" class="solr.FieldAnalysisRequestHandler" startup="lazy" /> </config>

versión de Lucene

Request Handlers

<lib dir="../../../contrib/langid/lib/" regex=".*\.jar" /> <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />

Añadiendo dependenciasdirectorio

expresión regular para cargar los JAR.

document update service

Text AnalysisTokenizer

Token Filter

Token Filter

<add> <doc> <field name="na </doc> <doc> <field name="ad </doc></add>

<schema> <types> <fieldType>... <fieldType>... </types> <fields> ... </fields></schema>

schema.xml

Lucene Index

beach drink latte

solr text analysis

Solr CoreHTTP POST

Solr Web App running in Java Web Server1

2

3

yumm

learn

Search Handler

<requestHandler name=“/select" class="solr.SearchHandler"> <lst name="defaults"> <str name=“echoParams"> explicit </str> <int name="rows">10</int> <str name="df">text</str> </lst> </requestHandler>

claseparámetros por defecto URL

defaults

appends

invariants

first-components last-components

Response

Configuración de un SearchHandler

quer

y

components

• defaults: Define parámetros por defecto si no son especificados en la consulta.

• invariants: Define parámetros que no pueden ser definidos en la consulta.

• appends: Añade parámetros que serán combinados con los de la consulta.

• first-components: Listado de componentes que son ejecutados antes de las tareas de pre-procesamiento.

• components: Define los components a ejecutar. Debe incluir al menos el componente query.

• last-components: Define los components a ejecutar durante el post-procesamiento.

Solr provee implementaciones por defecto para las distintas secciones. Además las opciones especificadas en

cada sección dependen de la clase que implementa al RequestHandler.

<requestHandler name="/select" class="solr.SearchHandler"> <lst name="defaults"></lst> <lst name="appends"></lst> <lst name="invariants"></lst> <arr name="components"></arr> </requestHandler>

Si definimos components no es posible utilizar first-components o last-

components.

<requestHandler name="/query" class="solr.SearchHandler"> <lst name="defaults"> <str name="echoParams">all</str> <str name="wt">json</str> <str name="indent">true</str> <str name="df">text</str> </lst> </requestHandler>

URL mostrar los parámetros

JSON

Un SearchHandler que …

"responseHeader": { "status": 0, "QTime": 0, "params": { "echoParams": "all", "indent": "true", "q": "*:*", "_": "1411154904386", "wt": "json" } }, "response": { "numFound": 32, "start": 0, "docs": [ {  } }

Request Handler

<requestHandler name="/update" class="solr.UpdateRequestHandler"> </requestHandler>

URL

<requestHandler name="/update/json" class="solr.UpdateRequestHandler"> <lst name="defaults"> <str name="stream.contentType"> application/json </str> </lst> </requestHandler>

Un UpdateHandler para JSON

<lst name="defaults"> <str name="update.chain">dedupe</str> </lst>

update.chain, processors del Update Handler

<updateRequestProcessorChain name="dedupe"> <processor class="solr.processor.SignatureUpdateProcessorFactory"> <bool name="enabled">true</bool> <str name="signatureField">id</str> <bool name="overwriteDupes">false</bool> <str name="fields">name,features,cat</str> <str name=“signatureClass"> solr.processor.Lookup3Signature </str> </processor> <processor class="solr.LogUpdateProcessorFactory" /> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain>

ejecuta la acción de indexar el contenido

Cada clase que implementa un RequestHandler tiene sus propios

parámetros que afectan su funcionamiento.

defaults

appends

invariants

first-components last-components

Response

Configuración de un SearchHandler

quer

y

components

Los components de un SearchHandler son los que ejecutan acciones durante la

búsqueda permitiendo extender las funcionalidades más allá de una simple

búsqueda.

Query component• Es el encargado de parsear y ejecutar la

búsqueda contra el índice de Solr.

Facet component• Este componente actúa sobre el conjunto

de documentos identificados por el Query component, o sea utiliza el resultado de la consulta.

More like this component• Es capaz de identificar documentos

similares

Highlight component• Utilizado para resaltar las porciones

de un documento que matchean los términos introducidos por el cliente y generar fragmentos de texto.

Debug component• Devuelve información sobre el formato

final de la query e información detallada de cómo el score (relevancia) fue calculado.

Stats components• Genera estadísticas (max, min, suma,

media, desviación estándar) en los campos numéricos.

Stats components

http://localhost:8983/solr/collection1/select? q=*:*& wt=xml& stats=true& stats.field=price

<lst name="price"> <double name="min">0.0</double> <double name="max">2199.0</double> <long name="count">16</long> <long name="missing">16</long> <double name="sum">5251.270030</double> <double name=“sumOfSquares">603861.17590 </double> <double name="mean">328.2043786</double> <double name="stddev">536.35346</double> <lst name="facets"/> </lst>

Respuesta

Genera sugerencias sobre términos “mal escritos” utilizando como base los términos que tiene ya indexados o un diccionario externo.

Spellchecker Component

<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> <str name="queryAnalyzerFieldType"> textSpell </str> <lst name="spellchecker"> <str name="name">default</str> <str name="field">name</str> <str name="classname"> solr.DirectSolrSpellChecker </str> </lst> </searchComponent>

Configurado Spellcheck

<arr name="components"> <str>spellcheck</str> </arr>

Configurado Spellcheck

<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> <str name="queryAnalyzerFieldType"> textSpell </str> <lst name="spellchecker"> <str name="name">default</str> <str name="field">name</str> <str name="classname"> solr.DirectSolrSpellChecker </str> </lst> </searchComponent>

ResumenSearch Update

components processors

<components> <update.chain>

versión MUY corta

<?xml version="1.0" encoding="UTF-8" ?> <config> <luceneMatchVersion> LUCENE_4_9 </luceneMatchVersion> <requestDispatcher handleSelect="false"> <httpCaching never304="true" /> </requestDispatcher> <requestHandler name="/select" class="solr.SearchHandler" /> <requestHandler name="/update" class="solr.UpdateRequestHandler" /> <requestHandler name="/admin" class="solr.admin.AdminHandlers" /> <requestHandler name="/analysis/field" class="solr.FieldAnalysisRequestHandler" startup="lazy" /> </config>