Click here to load reader
Upload
carlos-nacianceno
View
1.304
Download
3
Embed Size (px)
DESCRIPTION
Una presentación en PHP Colombia hablando sobre Zend Search Engine
Citation preview
Creando un motor de búsqueda con Zend Search Lucene
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
Zend Framework
Zend Framework es....● Fullstack framework MVC
● Librería de Componentes● 'Use at will'
● Flexibilidad
Zend Framework
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
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
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');
Zend Studio
Conceptos● Documentos
○ Objetos atómicos del índice○ Miles en un índice○ Formado por campos○ Representado por un objeto Zend_Search_Lucene_Document
Zend Studio
Conceptos● Campos
○ Van dentro de un Documento○ Zend_Search_Lucene_Field○ Diferentes tipos:
■ Keyword■ UnIndexed■ Binary■ Text■ UnStored
● Índice > Documento > Campos
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!
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
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
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
Zend Framework
Consultas o queries● Resultados
○ Hits ○ Documentos con un score ○ Se puede hacer una iteración con ellos
Demo.....
Ventajas● Sencillo de usar● No requiere servicios externos o extensiones● PHP !!● Adaptación a otros frameworks PHP
Zend Framework
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
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
Zend Framework
Muchas Gracias● Preguntas????● Twitter: @igormx