Creando un motor de búsquedacon 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...
Zend Framework
Zend Framework es....  ● Fullstack framework MVC  ● Librería de Componentes  ● Use at will  ● FlexibilidadZend Framework
Zend_Search_Engine● Componente ZF● Motor de búsqueda de textos● PHP 5 (no requeire más)● Standalone● Búsqueda Rankeada● Di...
Zend_Search_Engine  ● Versión PHP de Apache Lucene (Java)  ● No se requieren servidores externos, extensiones adicionales ...
Conceptos  ● Índices      ○ Archivos físicos en el sistema de archivos      ○ Si no existe se necesita crear      ○ Si ya ...
Conceptos  ● Documentos     ○ Objetos atómicos del índice     ○ Miles en un índice     ○ Formado por campos     ○ Represen...
Conceptos  ● Campos     ○ Van dentro de un Documento         ○ Zend_Search_Lucene_Field        ○ Diferentes tipos:        ...
Aclaraciones  ●   No es un crawler o spiderbot  ●   No es una Base de datos  ●   No es un simple almacenaje de información...
Partes de un motor de búsqueda  ● Indexador      ○ CLI o cronjob      ○ Fuente de datos externa         ■ Bases de datos  ...
Partes de un motor de búsqueda  ● Buscador     ○ Proceso         ■ Abrir el índice         ■ Realizar consulta         ■ M...
Consultas o queries● Término   ○ Palabra o frase que se busca● Tipos    ○ Wildcards    ○ Rango    ○ Fuzzy    ○ Próximidad●...
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 PH...
Desventajas  ● Los indices requieren mantenimiento por parte de la    aplicación  ● Limites de 2GB para 32 bit  ● Puede ll...
Buenas prácticas y tips      ● Optimizar el indice      ● No usar nombres de campo id y/o score      ● Buscar documentos p...
Muchas Gracias ● Preguntas???? ● Twitter: @igormxZend Framework
Upcoming SlideShare
Loading in …5
×

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

1,643 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,643
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Creando un motor de búsquedacon Zend Search Lucene
  2. 2. 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
  3. 3. Zend Framework
  4. 4. Zend Framework es.... ● Fullstack framework MVC ● Librería de Componentes ● Use at will ● FlexibilidadZend Framework
  5. 5. 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 camposZend Framework
  6. 6. 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.htmlZend Framework
  7. 7. 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
  8. 8. Conceptos ● Documentos ○ Objetos atómicos del índice ○ Miles en un índice ○ Formado por campos ○ Representado por un objeto Zend_Search_Lucene_DocumentZend Studio
  9. 9. Conceptos ● Campos ○ Van dentro de un Documento ○ Zend_Search_Lucene_Field ○ Diferentes tipos: ■ Keyword ■ UnIndexed ■ Binary ■ Text ■ UnStored ● Índice > Documento > CamposZend Studio
  10. 10. 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
  11. 11. 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 índiceZend Studio
  12. 12. 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 contenidosZend Framework
  13. 13. 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
  14. 14. Consultas o queries● Resultados ○ Hits ○ Documentos con un score ○ Se puede hacer una iteración con ellos
  15. 15. Demo.....
  16. 16. Ventajas ● Sencillo de usar ● No requiere servicios externos o extensiones ● PHP !! ● Adaptación a otros frameworks PHPZend Framework
  17. 17. 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 gigantescosZend Framework
  18. 18. Buenas prácticas y tips ● 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 scoreZend Framework
  19. 19. Muchas Gracias ● Preguntas???? ● Twitter: @igormxZend Framework

×