19

Click here to load reader

Construyendo un motor de búsqueda con Zend Search Luceneueda con

Embed Size (px)

DESCRIPTION

Una presentación en PHP Colombia hablando sobre Zend Search Engine

Citation preview

Page 1: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Creando un motor de búsqueda con Zend Search Lucene

Page 2: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Quién soy??

● Monterrey, N.L , México● Ingeniero Electrónica y Comunicaciones

● 11 años PHP y 3 años Zend Framework

● ZCE PHP 5, ZCE PHP 5.3, ZCE Zend Framework

● Instructor Autorizado Zend

Page 3: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework

Page 4: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework es....● Fullstack framework MVC

● Librería de Componentes● 'Use at will'

● Flexibilidad

Zend Framework

Page 5: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework

Zend_Search_Engine● Componente ZF● Motor de búsqueda de textos ● PHP 5 (no requeire más)● Standalone● Búsqueda Rankeada● Diferentes tipos de consultas● Búsqueda por campos

Page 6: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework

Zend_Search_Engine

● Versión PHP de Apache Lucene (Java)● No se requieren servidores externos, extensiones adicionales

o configuraciones especiales ● Compatible 1.4 - 2.3

● http://lucene.apache.org/java/docs/index.html

Page 7: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Studio

Conceptos● Índices

○ Archivos físicos en el sistema de archivos ○ Si no existe se necesita crear ○ Si ya existe se abre para manipularlo○ Se necesitan los permisos adecuados

$index = Zend_Search_Lucene:: create('/data/my-index');

$index = Zend_Search_Lucene:: open('/data/my-index');

Page 8: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Studio

Conceptos● Documentos

○ Objetos atómicos del índice○ Miles en un índice○ Formado por campos○ Representado por un objeto Zend_Search_Lucene_Document

Page 9: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Studio

Conceptos● Campos

○ Van dentro de un Documento○ Zend_Search_Lucene_Field○ Diferentes tipos:

■ Keyword■ UnIndexed■ Binary■ Text■ UnStored

● Índice > Documento > Campos

Page 10: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Studio

Aclaraciones ● No es un crawler o spiderbot● No es una Base de datos● No es un simple almacenaje de información● Es un motor de búsqueda!

Page 11: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Studio

Partes de un motor de búsqueda● Indexador

○ CLI o cronjob ○ Fuente de datos externa

■ Bases de datos■ Entradas del usuario

○ HTML○ PPT 2007○ Word 2007○ Excel 2007 ○ Proceso

■ Abrir o Crear el índice■ Crear documentos■ Añadir campos al documento■ Añadir docuentos al índice■ Cerrar índice

Page 12: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework

Partes de un motor de búsqueda● Buscador

○ Proceso■ Abrir el índice■ Realizar consulta■ Mostrar resultados■ Cerrar índice

○ Accion■ Abre el índice ■ Realiza consulta

○ Vista■ Muestra contenidos

Page 13: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework

Consultas o queries● Término

○ Palabra o frase que se busca

● Tipos○ Wildcards○ Rango○ Fuzzy○ Próximidad

● Opciones

○ Buscar por campos o conjunto de campos○ Operadores booleanos○ Peso a terminos○ Escape de caracteres especiales

Page 14: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework

Consultas o queries● Resultados

○ Hits ○ Documentos con un score ○ Se puede hacer una iteración con ellos

Page 15: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Demo.....

Page 16: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Ventajas● Sencillo de usar● No requiere servicios externos o extensiones● PHP !!● Adaptación a otros frameworks PHP

Zend Framework

Page 17: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Desventajas● Los indices requieren mantenimiento por parte de la

aplicación● Limites de 2GB para 32 bit● Puede llegar a consumir muchos recursos de indices

gigantescos

Zend Framework

Page 18: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Buenas prácticas y tips

Zend Framework

● Optimizar el indice● No usar nombres de campo id y/o score● Buscar documentos por id● Asegurarnos de indexar con el mismo charset con el que

buscamos● Darle mantenimiento al índice● IDEA: Modificar algoritmo de score

Page 19: Construyendo un motor de búsqueda con Zend Search Luceneueda con

Zend Framework

Muchas Gracias● Preguntas????● Twitter: @igormx