1Apache Solr 
Paradigma Tecnológico 
Servicios de formaciónApache Solr
2Apache SolrÍndice 
Introducción 
Lucene 
Solr 
Instalación 
Indexación 
EsquemadeDatos 
Búsqueda 
ParámetrosdeBúsqueda 
BúsquedaAvanzada 
AnalizadoresdeTexto 
Tokenización 
Stemming 
Sinónimos 
StopWords 
N-Gramas 
ComponentesdeBúsqueda 
Highlighting 
Correcciónortográfica 
Morelikethis
3Apache Solr 
Paradigma Tecnológico 
Servicios de formaciónIntroducción
4Apache Solr 
Solr:MotordebúsquedabasadoenLucene. 
Lucene:Proyectodecódigoabiertoescritoenjava. 
Libreríaqueproporcionabúsquedasdetextodealtorendimientohaciendousodeíndicesinvertidos. 
Mayorvelocidadenlabúsquedadecadenasdetexto. 
Menordependenciadeltamañodelíndice. 
Mayorflexibilidadenlasbúsquedasdetexto:Búsquedasportérmino, medianteN-Gramas,búsquedasfonéticas… 
Mayorfacilidadparaordenacionesporscoreyponderaciones. 
Característicasadicionales:Analizadoresdetexto,resaltadodecoincidencias,correctorortográfico,etc. 
Introducción (I): Lucene
5Apache Solr 
Índice Directo 
Índice Invertido 
Introducción (II): Índice Invertido vs. Índice Directo 
1 
que es esto 
2 
esto es un texto 
3 
este texto es otro texto 
que 
1 
es 
1, 2, 3 
esto 
1, 2 
un 
2 
texto 
2, 3 
este 
3 
otro 
3 
que 
(1,1) 
es 
(1,2) (2,2) (3,3) 
esto 
(1,3) (2,1) 
un 
(2,3) 
texto 
(2,4) (3,2) (3,5) 
este 
(3,1) 
otro 
(3,4)
6Apache Solr 
SolresunproyectodecódigoabiertoescritoenjavaqueproporcionaunrecubrimientodeLuceneañadiendocaracterísticasadicionales: 
AccesoHTTPaLucene. 
Cachésparalograrmayorvelocidadenlasbúsquedas. 
Interfazdeadministraciónweb. 
ConfiguracióndelesquemadedatosydelservidormediantearchivosXML. 
Facetadoderesultados(Agrupaciónderesultadosconcontadores). 
Replicaciónydistribucióndeservidores. 
… 
Introducción (III): Solr
7Apache Solr 
Solrsedivideendospartes: 
Índice:Sistemadeficherosquealmacenanlainformación.ContienelaconfiguracióndeSolryladefinicióndelaestructuradedatos. 
Servidor:Proporcionaelaccesoalosíndicesylascaracterísticasadicionales.Admitepluginsparaañadirfuncionalidades. 
Arquitectura de Solr(I)
8Apache Solr 
SolrpermitebúsquedaseindexacionesdistribuidasygestionalareplicacióndeíndiceshaciendousodeZookeeper. 
Arquitectura de Solr(II): SolrCloud
9Apache SolrArquitectura de Solr(III): Indexación y Búsqueda Distribuida
10Apache Solr 
Arquitectura de Solr(IV): Replicación Automática
11Apache Solr 
Requisitos: 
Java1.6+(Java1.7+apartirdelaversión4.8) 
Servidordeaplicaciones 
Descarga: 
http://lucene.apache.org/solr/ 
Pasos: 
Copiadeíndice. 
Desplieguedeservidorsobreelservidordeaplicacionesyconfiguracióndelogs. 
Configuracióndeenlaceentreservidoreíndice.(Definirvariablesolr.home) 
Instalación de Solr
12Apache Solr 
Paradigma Tecnológico 
Servicios de formaciónIndexación
13Apache Solr 
schema.xml:ArchivoXMLquedefinelasestructuradedatosaindexar. 
Estructuradecampo: 
TiposdeDatos:Definidosporclasesjava. 
Parámetrosopcionales: 
default:Valorausarsinoserecibeninguno 
required:Definesiuncampoesobligatorio. 
indexed:Determinasiuncampoesbuscableuordenable. 
stored:Determinasiuncamposepuederecuperarenunaconsulta. 
multiValued:Elcampocontienemásdeunvalor. 
Indexación de Contenidos (I): Esquema de datos 
<field name=“nombrede campo" type=“tipode dato" />
14Apache Solr 
Canalesparaelenvíodedocumentos: 
PeticiónHTTP:EnvíodeinstrucciónydatosasociadosvíaHTTPPOST. 
ClienteSolrj:Clientejava.Permiterealizarlasdiferentesoperacionessobreelíndiceyenviarlainformaciónendiferentesformatos. 
Fuentesdedatosparalaindexación: 
XML:Coherenteconlaestructuradedatosdefinida. 
ObjetosJava:RepresentaciónbinariadeldocumentoXML. 
CSV:Documentodetextoconvaloresseparados. 
Documentosenriquecidos:PDF,XLS,DOC,PPT,… 
BasedeDatos:Adaptadorintermedio(DataImportHandler). 
Indexación de Contenidos (II)
15Apache Solr 
Paradigma Tecnológico 
Servicios de formaciónBúsqueda
16Apache Solr 
Canalesdebúsqueda: 
PeticiónHTTP:EnvíodeinstruccióndebúsquedayparámetrosmedianteHTTPGET. 
AdministradordeSolr:proporcionaunrecubrimientoparasimplificarlapeticiónHTTP. 
ClienteSolrj:Poseetambiénlosmétodosnecesariospararealizarbúsquedassobrelosíndices. 
RespuestacomoestructuraXML,JSON,javabin... 
Búsquedas (I)
17Apache Solr 
q:Peticiónconformato“campo:valor” 
start:Documentoinicialapartirdelcualsevanamostrarlosresultados. 
rows:Indicaelnúmeromáximoderesultadosamostrar. 
sort:Definelaordenacióndelosresultados.Ordenacionescombinadas. Formatodeordenaciones:“preciodesc,nombreasc” 
fl:Camposquesedevuelvenenlarespuesta 
fq:Mismoformatoque“q”.Limitalaquery(actúacomofiltro).Losresultadossecachean. 
facets:Indicasisedeseanmostrarfacetas.Parámetrosadicionalesparaindicarelcampoporelquerealizarlas,límite,ordenación,etc. 
… 
Búsquedas (II): Parámetros de Búsqueda
18Apache Solr 
Wildcards:Solrnopermitewildcardsiniciales 
word*:*sustituyeacualquiernúmerodecaracteres. 
w?rd:?sustituyeaunúnicocarácter. 
w?*d:Puedencomponerseamboscomodines. 
OperadoresLógicos 
AND:word1ANDword2=word1&&word2=+word1+word2 
OR:word1ORword2=word1||word2=word1word2 
NOT:word1NOTword2=word1-word2 
Búsquedas (III): Búsqueda Avanzada
19Apache Solr 
Rangos:Seexpresancomo“campo:[ATOB]” 
Boosting:Sepuedenordenarresultadosdandomásimportanciaaciertoscampos 
nombre:jose^2ANDalias:pepe^0.7 
Fuzzy:Buscatérminossimilaresbasándoseennúmerodeinserciones, borradosointercambiosdecaracteres.Puededefinirseelgradodeproximidad. 
nombre:sony~0.9->Devuelveresultadosconnombre“sony” 
nombre:sony~0.4->Devuelveresultadosconnombre“coby” 
Búsquedas (IV): Búsqueda Avanzada
20Apache Solr 
Paradigma Tecnológico 
Servicios de formaciónAnalizadores de Texto
21Apache Solr 
ProcesadorespropiosdeSolroposibilidaddeimplementarnuevosanalizadores. 
ConfigurablesporXML(schema.xml).Aplicablesacamposespecíficos. 
Aplicablesentiempodeindexación,durantelabúsquedaoenambos. 
Existenmúltiplesanalizadoresysepuedendefiniranalizadorespropios, algunosdelosqueproporcionaSolr: 
Analizadores de Texto (I) 
Tokenización 
Stemming 
Sinónimos 
Stop Words 
N-Gramas
22Apache Solr 
Tokenización:Divisióndetextomediantediferentesexpresiones(Espaciosenblanco,etiquetashtml,signosdepuntuación,expresionesregulares…) 
Stemming:Reduccióndetérminosderivadosasuformaraíz. 
Sinónimos:Transformacióndetextomediantedefiniciónexplícitaderelacionesdesinonimia. 
Analizadores de Texto (II): Tokenización, Stemming, Sinónimos 
<tokenizerclass="solr.WhitespaceTokenizerFactory"/> 
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> 
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
23Apache Solr 
Stopwords:Eliminacióndepalabrasnosignificativasparaelprocesodebúsqueda. 
N-Gramas:Separacióndetextoenlosdiferentesgruposdecaracteresquelocomponen. 
Analizadores de Texto (III): Stop Words, N-Gramas 
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="15"/>
24Apache Solr 
Paradigma Tecnológico 
Servicios de formaciónComponentes de Búsqueda
25Apache Solr 
Loscomponentesdebúsquedaproporcionanfuncionesadicionalesalarecuperaciónderesultados. 
Sonconfigurablesentiempodeconsulta(Algunospuedennecesitarconfiguraciónadicionalenlosarchivosxml). 
AlgunosdeloscomponentesdebúsquedaqueproporcionaSolr: 
Highlighting:Resaltadodetérminos. 
SpellChecker:Correcciónortográfica. 
MoreLikeThis:Resultadossimilares. 
Componentes de Búsqueda (I)
26Apache SolrComponentes de Búsqueda (II): Highlighting 
Highlighting:Ofreceelresaltadodetérminosbuscadosdentrodeunacadenadetexto. 
Algunosparámetrosdeconfiguración: 
hl=true:Activaelresaltadodetérminos 
hl.fl=[fieldnames]:Campoocampossobrelosqueserealizaráelresaltado. 
hl.simple.pre/hl.simple.post=[etiqueta]:Etiquetaqueseañadiráantesydespuésdeltérminoresaltado(Ej.<spanclass=“bold”>término</span>)
27Apache Solr 
SpellChecker:Proporcionasugerenciasparaerroresortográficosbasadasenelcontenidoindexadooenundiccionario. 
Parasugerenciasporcontenidoindexadoesrecomendablecrearuncampoparacorrecciónortográfica(Detipo“textSpell”o“textSpellPhrase”). 
Configuración: 
Componentes de Búsqueda (III): Corrección Ortográfica 
<searchComponentname="spellcheck" class="solr.SpellCheckComponent"> 
<strname="queryAnalyzerFieldType">spell</str> 
<lstname="spellchecker"> 
<strname="name">general</str> 
<strname="field">spell</str> 
<strname="classname">solr.DirectSolrSpellChecker</str> 
<strname="distanceMeasure">internal</str> 
<float name="accuracy">0.5</float> 
</lst> 
</searchComponent>
28Apache Solr 
MoreLikeThis:Componentedesugerenciadedocumentossimilares.Sebasaenlostérminosqueapareceneneldocumentorecuperadoylafrecuenciadelosmismos. 
Configuraciónporparámetrosdebúsqueda: 
mlt=true:Activalautilidadderesultadossimilares. 
mlt.fl=[fieldnames]:Campoocamposanalizados. 
mlt.count=[número]:Númeroderesultadosdevueltos. 
mlt.qf=[field1^2.0field2^5.0]:Configuracióndeponderaciónsobrediferentescamposparaelcálculodesimilitud. 
… 
Componentes de Búsqueda (IV): More LikeThis
29Apache Solr 
Paradigma Tecnológico 
Servicios de formación 
Referencias
30Apache Solr 
EnlacesdeInterés: 
PáginaOficial:http://lucene.apache.org/solr/ 
Wiki:http://wiki.apache.org/solr/ 
Mailinglist:http://mail-archives.apache.org/mod_mbox/lucene-solr-user/ 
Manuales: 
Smiley,D.yPugh,E.(2011).ApacheSolr3EnterpriseSearchServer.PacktPublishing 
Referencias y Enlaces de Interés

Seminario Apache Solr

  • 1.
    1Apache Solr ParadigmaTecnológico Servicios de formaciónApache Solr
  • 2.
    2Apache SolrÍndice Introducción Lucene Solr Instalación Indexación EsquemadeDatos Búsqueda ParámetrosdeBúsqueda BúsquedaAvanzada AnalizadoresdeTexto Tokenización Stemming Sinónimos StopWords N-Gramas ComponentesdeBúsqueda Highlighting Correcciónortográfica Morelikethis
  • 3.
    3Apache Solr ParadigmaTecnológico Servicios de formaciónIntroducción
  • 4.
    4Apache Solr Solr:MotordebúsquedabasadoenLucene. Lucene:Proyectodecódigoabiertoescritoenjava. Libreríaqueproporcionabúsquedasdetextodealtorendimientohaciendousodeíndicesinvertidos. Mayorvelocidadenlabúsquedadecadenasdetexto. Menordependenciadeltamañodelíndice. Mayorflexibilidadenlasbúsquedasdetexto:Búsquedasportérmino, medianteN-Gramas,búsquedasfonéticas… Mayorfacilidadparaordenacionesporscoreyponderaciones. Característicasadicionales:Analizadoresdetexto,resaltadodecoincidencias,correctorortográfico,etc. Introducción (I): Lucene
  • 5.
    5Apache Solr ÍndiceDirecto Índice Invertido Introducción (II): Índice Invertido vs. Índice Directo 1 que es esto 2 esto es un texto 3 este texto es otro texto que 1 es 1, 2, 3 esto 1, 2 un 2 texto 2, 3 este 3 otro 3 que (1,1) es (1,2) (2,2) (3,3) esto (1,3) (2,1) un (2,3) texto (2,4) (3,2) (3,5) este (3,1) otro (3,4)
  • 6.
    6Apache Solr SolresunproyectodecódigoabiertoescritoenjavaqueproporcionaunrecubrimientodeLuceneañadiendocaracterísticasadicionales: AccesoHTTPaLucene. Cachésparalograrmayorvelocidadenlasbúsquedas. Interfazdeadministraciónweb. ConfiguracióndelesquemadedatosydelservidormediantearchivosXML. Facetadoderesultados(Agrupaciónderesultadosconcontadores). Replicaciónydistribucióndeservidores. … Introducción (III): Solr
  • 7.
    7Apache Solr Solrsedivideendospartes: Índice:Sistemadeficherosquealmacenanlainformación.ContienelaconfiguracióndeSolryladefinicióndelaestructuradedatos. Servidor:Proporcionaelaccesoalosíndicesylascaracterísticasadicionales.Admitepluginsparaañadirfuncionalidades. Arquitectura de Solr(I)
  • 8.
  • 9.
    9Apache SolrArquitectura deSolr(III): Indexación y Búsqueda Distribuida
  • 10.
    10Apache Solr Arquitecturade Solr(IV): Replicación Automática
  • 11.
    11Apache Solr Requisitos: Java1.6+(Java1.7+apartirdelaversión4.8) Servidordeaplicaciones Descarga: http://lucene.apache.org/solr/ Pasos: Copiadeíndice. Desplieguedeservidorsobreelservidordeaplicacionesyconfiguracióndelogs. Configuracióndeenlaceentreservidoreíndice.(Definirvariablesolr.home) Instalación de Solr
  • 12.
    12Apache Solr ParadigmaTecnológico Servicios de formaciónIndexación
  • 13.
    13Apache Solr schema.xml:ArchivoXMLquedefinelasestructuradedatosaindexar. Estructuradecampo: TiposdeDatos:Definidosporclasesjava. Parámetrosopcionales: default:Valorausarsinoserecibeninguno required:Definesiuncampoesobligatorio. indexed:Determinasiuncampoesbuscableuordenable. stored:Determinasiuncamposepuederecuperarenunaconsulta. multiValued:Elcampocontienemásdeunvalor. Indexación de Contenidos (I): Esquema de datos <field name=“nombrede campo" type=“tipode dato" />
  • 14.
    14Apache Solr Canalesparaelenvíodedocumentos: PeticiónHTTP:EnvíodeinstrucciónydatosasociadosvíaHTTPPOST. ClienteSolrj:Clientejava.Permiterealizarlasdiferentesoperacionessobreelíndiceyenviarlainformaciónendiferentesformatos. Fuentesdedatosparalaindexación: XML:Coherenteconlaestructuradedatosdefinida. ObjetosJava:RepresentaciónbinariadeldocumentoXML. CSV:Documentodetextoconvaloresseparados. Documentosenriquecidos:PDF,XLS,DOC,PPT,… BasedeDatos:Adaptadorintermedio(DataImportHandler). Indexación de Contenidos (II)
  • 15.
    15Apache Solr ParadigmaTecnológico Servicios de formaciónBúsqueda
  • 16.
    16Apache Solr Canalesdebúsqueda: PeticiónHTTP:EnvíodeinstruccióndebúsquedayparámetrosmedianteHTTPGET. AdministradordeSolr:proporcionaunrecubrimientoparasimplificarlapeticiónHTTP. ClienteSolrj:Poseetambiénlosmétodosnecesariospararealizarbúsquedassobrelosíndices. RespuestacomoestructuraXML,JSON,javabin... Búsquedas (I)
  • 17.
    17Apache Solr q:Peticiónconformato“campo:valor” start:Documentoinicialapartirdelcualsevanamostrarlosresultados. rows:Indicaelnúmeromáximoderesultadosamostrar. sort:Definelaordenacióndelosresultados.Ordenacionescombinadas. Formatodeordenaciones:“preciodesc,nombreasc” fl:Camposquesedevuelvenenlarespuesta fq:Mismoformatoque“q”.Limitalaquery(actúacomofiltro).Losresultadossecachean. facets:Indicasisedeseanmostrarfacetas.Parámetrosadicionalesparaindicarelcampoporelquerealizarlas,límite,ordenación,etc. … Búsquedas (II): Parámetros de Búsqueda
  • 18.
    18Apache Solr Wildcards:Solrnopermitewildcardsiniciales word*:*sustituyeacualquiernúmerodecaracteres. w?rd:?sustituyeaunúnicocarácter. w?*d:Puedencomponerseamboscomodines. OperadoresLógicos AND:word1ANDword2=word1&&word2=+word1+word2 OR:word1ORword2=word1||word2=word1word2 NOT:word1NOTword2=word1-word2 Búsquedas (III): Búsqueda Avanzada
  • 19.
    19Apache Solr Rangos:Seexpresancomo“campo:[ATOB]” Boosting:Sepuedenordenarresultadosdandomásimportanciaaciertoscampos nombre:jose^2ANDalias:pepe^0.7 Fuzzy:Buscatérminossimilaresbasándoseennúmerodeinserciones, borradosointercambiosdecaracteres.Puededefinirseelgradodeproximidad. nombre:sony~0.9->Devuelveresultadosconnombre“sony” nombre:sony~0.4->Devuelveresultadosconnombre“coby” Búsquedas (IV): Búsqueda Avanzada
  • 20.
    20Apache Solr ParadigmaTecnológico Servicios de formaciónAnalizadores de Texto
  • 21.
    21Apache Solr ProcesadorespropiosdeSolroposibilidaddeimplementarnuevosanalizadores. ConfigurablesporXML(schema.xml).Aplicablesacamposespecíficos. Aplicablesentiempodeindexación,durantelabúsquedaoenambos. Existenmúltiplesanalizadoresysepuedendefiniranalizadorespropios, algunosdelosqueproporcionaSolr: Analizadores de Texto (I) Tokenización Stemming Sinónimos Stop Words N-Gramas
  • 22.
    22Apache Solr Tokenización:Divisióndetextomediantediferentesexpresiones(Espaciosenblanco,etiquetashtml,signosdepuntuación,expresionesregulares…) Stemming:Reduccióndetérminosderivadosasuformaraíz. Sinónimos:Transformacióndetextomediantedefiniciónexplícitaderelacionesdesinonimia. Analizadores de Texto (II): Tokenización, Stemming, Sinónimos <tokenizerclass="solr.WhitespaceTokenizerFactory"/> <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
  • 23.
    23Apache Solr Stopwords:Eliminacióndepalabrasnosignificativasparaelprocesodebúsqueda. N-Gramas:Separacióndetextoenlosdiferentesgruposdecaracteresquelocomponen. Analizadores de Texto (III): Stop Words, N-Gramas <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> <filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="15"/>
  • 24.
    24Apache Solr ParadigmaTecnológico Servicios de formaciónComponentes de Búsqueda
  • 25.
    25Apache Solr Loscomponentesdebúsquedaproporcionanfuncionesadicionalesalarecuperaciónderesultados. Sonconfigurablesentiempodeconsulta(Algunospuedennecesitarconfiguraciónadicionalenlosarchivosxml). AlgunosdeloscomponentesdebúsquedaqueproporcionaSolr: Highlighting:Resaltadodetérminos. SpellChecker:Correcciónortográfica. MoreLikeThis:Resultadossimilares. Componentes de Búsqueda (I)
  • 26.
    26Apache SolrComponentes deBúsqueda (II): Highlighting Highlighting:Ofreceelresaltadodetérminosbuscadosdentrodeunacadenadetexto. Algunosparámetrosdeconfiguración: hl=true:Activaelresaltadodetérminos hl.fl=[fieldnames]:Campoocampossobrelosqueserealizaráelresaltado. hl.simple.pre/hl.simple.post=[etiqueta]:Etiquetaqueseañadiráantesydespuésdeltérminoresaltado(Ej.<spanclass=“bold”>término</span>)
  • 27.
    27Apache Solr SpellChecker:Proporcionasugerenciasparaerroresortográficosbasadasenelcontenidoindexadooenundiccionario. Parasugerenciasporcontenidoindexadoesrecomendablecrearuncampoparacorrecciónortográfica(Detipo“textSpell”o“textSpellPhrase”). Configuración: Componentes de Búsqueda (III): Corrección Ortográfica <searchComponentname="spellcheck" class="solr.SpellCheckComponent"> <strname="queryAnalyzerFieldType">spell</str> <lstname="spellchecker"> <strname="name">general</str> <strname="field">spell</str> <strname="classname">solr.DirectSolrSpellChecker</str> <strname="distanceMeasure">internal</str> <float name="accuracy">0.5</float> </lst> </searchComponent>
  • 28.
    28Apache Solr MoreLikeThis:Componentedesugerenciadedocumentossimilares.Sebasaenlostérminosqueapareceneneldocumentorecuperadoylafrecuenciadelosmismos. Configuraciónporparámetrosdebúsqueda: mlt=true:Activalautilidadderesultadossimilares. mlt.fl=[fieldnames]:Campoocamposanalizados. mlt.count=[número]:Númeroderesultadosdevueltos. mlt.qf=[field1^2.0field2^5.0]:Configuracióndeponderaciónsobrediferentescamposparaelcálculodesimilitud. … Componentes de Búsqueda (IV): More LikeThis
  • 29.
    29Apache Solr ParadigmaTecnológico Servicios de formación Referencias
  • 30.
    30Apache Solr EnlacesdeInterés: PáginaOficial:http://lucene.apache.org/solr/ Wiki:http://wiki.apache.org/solr/ Mailinglist:http://mail-archives.apache.org/mod_mbox/lucene-solr-user/ Manuales: Smiley,D.yPugh,E.(2011).ApacheSolr3EnterpriseSearchServer.PacktPublishing Referencias y Enlaces de Interés