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!