16
Lucene, Solr y ApacheSolr en Drupal Diego Tejera Octubre 2010 Encuentro Drupal Panamá [email protected]

Lucene, Solr y ApacheSolr en Drupal · Lucene, Solr y ApacheSolr en Drupal Diego Tejera Octubre 2010 Encuentro Drupal Panamá [email protected]

  • Upload
    dokiet

  • View
    253

  • Download
    0

Embed Size (px)

Citation preview

Lucene, Solr y ApacheSolren Drupal

Diego TejeraOctubre 2010

Encuentro Drupal Panamá

[email protected]

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

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]

● 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

p

Búsquedas por facetas

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

Trick or Treat!http://drupal.org/project/modules

¿Preguntas?