Conferencia 3: solrconfig.xml
-
Upload
jorge-luis-betancourt-gonzalez -
Category
Data & Analytics
-
view
50 -
download
3
Transcript of Conferencia 3: 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
<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": [ { } }
<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
<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>
<?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>