lucene, solr y apachesolr en drupal · lucene, solr y apachesolr en drupal diego tejera octubre...
TRANSCRIPT
Lucene, Solr y ApacheSolren Drupal
Diego TejeraOctubre 2010
Encuentro Drupal Panamá
Que es un Motor de Búsqueda?
Pero ya existen las bases de datos!
Un software que:● Construye un índice de un texto● Responde a consultas usando el indice
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 -> 1Divierte -> 2Diego -> 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
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]
● 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.
Apache Solr
Módulo Apache Solr para Drupal
+ = #WIN
● 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
¡Más Ventajas!
● Tipos de Contenidos● Autores● Taxonomías● Lenguajes● Campos el CCK
Filtra tus contenidos
Indexa Adjuntos del Contenido● .doc, .xls, .ppt● .pdf● .txt● txt● Muchos más...
http://drupal.org/project/apachesolr_attachments
Instalación
apt-get install sun-java6-jdkInstalamos Java JDK
Descargamos Apache Solr
http://www.apache.org/dyn/closer.cgi/lucene/solr/
http://drupal.org/project/apachesolr
Instalamos el Módulo de Apache Solr, pero no lo habilitamos
http://code.google.com/p/solr-php-client/downloads/list
Descargamos la librería cliente de apache solr para php y la descomprimimos en el folder donde instalamos el modulo apachesolr
Habilitamos Apache Solr Framework y Apache Solr Search en los módulos de Drupal
Instalación
Descomprimimos Apache Solr fuera del webroot
Nos movemos a /apachesolr/example/solr/conf y copiamos schema y solrconfigY 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ónhttp://localhost:8983/solr/admin/
En este momento debemos configurar drupal search con apache solrNos 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.
Instalación