Download Lucene, Solr y ApacheSolr en Drupal

Document related concepts
no text concepts found
Transcript
Lucene, Solr y ApacheSolr
en Drupal
Diego Tejera
Octubre 2010
Encuentro Drupal Panamá
d.tejera@ieee.org
Que es un Motor de Búsqueda?
Un software que:
●
●
Construye un índice de un texto
Responde a consultas usando el indice
Pero ya existen las bases de datos!
Si, pero un Motor de busqueda puede ofrecer:
●
●
●
●
Escalabilidad
Ranking por relevancia
Puede integrar diferentes fuentes de datos (correos, sitios web, archivos, bases de datos).
Permite realizar búsquedas por facetas (Faceted Search)
Proceso de Indexamiento
Pasos
●
●
●
●
Convertir Documento
Extraer su data y metadata
Normalizar el texto
Escribir el Index
Ejemplo:
Documento 1: "Diego me Aburre"
Documento 2: "Diego me Divierte"
El inidice sería:
Aburre -> 1
Divierte -> 2
Diego -> 1, 2
Apache Lucene
●
Librería de Java para búsqueda e indexamiento.
●
Funciona a partir de Java 1.4.
●
●
Input: Document Objects (Basado en el Document Object Model (DOM) de W3C
http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/)
Cada Documento debe tener un set de campos: nombreDelCampo:
contenidoDelCampo.
●
Input para hacer busquedas: Java String o Query Object.
●
Los inidices son almacenados como como archivos en el disco.
Ventajas de Apache Lucene
●
Poderosa sintaxis de búsqueda.
●
Pueden ser creados desde el input del usuario o programaticamente.
●
Rápido indexamiento.
●
Búsqueda Rápida.
●
Ordenamiento por relevancia y otros tipos de campos.
●
Bajo la Licencia Apache 2.0.
Comportamiento de Lucene
Normalización del Texto (Analizer)
● Tokenize: "foo-bar: text" -> foo, bar, text.
●
Convertir a lowercase
●
Normalización lingüística (children->child)
●
Elminación de los "Stopwords" (the, a, they, ...)
** Es posible crear tu propio analizador
Quién está utilizando Lucene
http://wiki.apache.org/lucene-java/PoweredBy
Sintaxis de Búsqueda
UTP
UTP AND DRUPAL
UTP NOT DRUPAL
UTP OR DRUPAL
PHP AND (DRUPAL OR UTP)
"Drupal UTP"
title:drupal
Dr?pal
dru*
tejera~ -> tejeira, tejada, tajada
price:[000 TO 050]
Apache Solr
●
Servidor de indexamiento y Búsqueda (Necesita Jetty o Tomcat).
●
Requiere Java 5.0+.
●
Construido sobre Lucene Java.
●
Se comunica a través de http enviando y recibiendo XML.
Módulo Apache Solr para Drupal
●
●
●
Remplazo para el Core Search
Mejor Rendimiento
● Puede correr en un servidor aparte
● Búsca sobre sus indices no sobre la base de datos
Libera la carga de PHP + SQLDB
Características y ventajas
●
●
●
●
Búsquedas por Facetas
Recomenación de Contenido (More like this)
Did you mean?
Auto completado de búsquedas
+
=
#WIN
¡Más Ventajas!
Filtra tus contenidos
●
●
●
●
●
Tipos de Contenidos
Autores
Taxonomías
Lenguajes
Campos el CCK
Indexa Adjuntos del Contenido
●
●
●
●
●
.doc, .xls, .ppt
.pdf
.txt
txt
Muchos más...
http://drupal.org/project/apachesolr_attachments
Búsquedas por facetas
p
Instalación
Instalamos Java JDK
apt-get install sun-java6-jdk
Instalamos el Módulo de Apache Solr, pero no lo habilitamos
http://drupal.org/project/apachesolr
Descargamos la librería cliente de apache solr para php y la
descomprimimos en el folder donde instalamos el modulo
apachesolr
http://code.google.com/p/solr-php-client/downloads/list
Habilitamos Apache Solr Framework y Apache Solr Search en los módulos de Drupal
Descargamos Apache Solr
http://www.apache.org/dyn/closer.cgi/lucene/solr/
Instalación
Descomprimimos Apache Solr fuera del webroot
Nos movemos a /apachesolr/example/solr/conf y copiamos schema y solrconfig
Y los renombramos como schema.bak y solrconfig.bak para no perder los archivos
originales
Copiamos schema y solrconfig que se encuentran en nuestro modulo de drupal y
remplazamos los anteriores
Entramos al directorio ejemplo:
cd /apachesolr/example/
Iniciamos el Servicio Apache Solr:
java -jar start.jar
Podemos probar nuestra interfaz de adminstración
http://localhost:8983/solr/admin/
En este momento debemos configurar drupal search con apache solr
Nos dirijimos a admin/setting/apachesolr/index y corremos el cron para indexar el
contenido usando apache solr
Instalación
Nos dirijimos a /admin/settings/apachesolr hacemos click en Advance Configuration y
colocamos a apache solr como el buscador por defecto.
En este momento ya debe estar todo funcionando, ahora nos toca configurar los
filtros que deseemos y habiltar los bloques que necesitemos.
http://drupal.org/project/modules
¿Preguntas?
Trick or Treat!