SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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_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 Framework
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 Studio
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
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

      ● 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




Zend Framework

Más contenido relacionado

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

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10Keopx
 
Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Fernando Rizzato
 
MANUAL 3
MANUAL 3MANUAL 3
MANUAL 3arecerv
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2El Taller Web
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomlaRoberto Segura
 
NFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosNFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosGDGMallorca
 
Módulos en Zend Framework 2
Módulos en Zend Framework 2Módulos en Zend Framework 2
Módulos en Zend Framework 2El Taller Web
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Juan Carbajal
 
Universidad tecnica de ambato google hacking
Universidad tecnica de ambato google hackingUniversidad tecnica de ambato google hacking
Universidad tecnica de ambato google hackingWendy Gavilanes
 
Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...
Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...
Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...betabeers
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
 

Similar a Construyendo un motor de búsqueda con Zend Search Luceneueda con (20)

No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
 
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC
 
MANUAL 3
MANUAL 3MANUAL 3
MANUAL 3
 
manual de c# (2)
manual de c# (2)manual de c# (2)
manual de c# (2)
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomla
 
Alto rendimiento en la web
Alto rendimiento en la webAlto rendimiento en la web
Alto rendimiento en la web
 
Alternativas de hosting para WordPress
Alternativas de hosting para WordPressAlternativas de hosting para WordPress
Alternativas de hosting para WordPress
 
S4 - EF
S4 - EFS4 - EF
S4 - EF
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
S4-PD1-2.2 EF
 
NFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosNFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datos
 
Módulos en Zend Framework 2
Módulos en Zend Framework 2Módulos en Zend Framework 2
Módulos en Zend Framework 2
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 
Universidad tecnica de ambato google hacking
Universidad tecnica de ambato google hackingUniversidad tecnica de ambato google hacking
Universidad tecnica de ambato google hacking
 
Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...
Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...
Presentación de Codection / Charla Técnica Wordpress - Betabeers Córdoba (29/...
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEO
 

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

  • 1. Creando un motor de búsqueda con Zend Search Lucene
  • 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
  • 4. Zend Framework es.... ● Fullstack framework MVC ● Librería de Componentes ● 'Use at will' ● Flexibilidad Zend Framework
  • 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 campos Zend Framework
  • 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.html Zend Framework
  • 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. Conceptos ● Documentos ○ Objetos atómicos del índice ○ Miles en un índice ○ Formado por campos ○ Representado por un objeto Zend_Search_Lucene_Document Zend Studio
  • 9. Conceptos ● Campos ○ Van dentro de un Documento ○ Zend_Search_Lucene_Field ○ Diferentes tipos: ■ Keyword ■ UnIndexed ■ Binary ■ Text ■ UnStored ● Índice > Documento > Campos Zend Studio
  • 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. 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 Studio
  • 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 contenidos Zend Framework
  • 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. Consultas o queries ● Resultados ○ Hits ○ Documentos con un score ○ Se puede hacer una iteración con ellos
  • 16. Ventajas ● Sencillo de usar ● No requiere servicios externos o extensiones ● PHP !! ● Adaptación a otros frameworks PHP Zend Framework
  • 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 gigantescos Zend Framework
  • 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 score Zend Framework
  • 19. Muchas Gracias ● Preguntas???? ● Twitter: @igormx Zend Framework