SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
En la práctica:
Lucene y Yahoo! BOSS

José Carlos Cortizo Pérez
  http://www.esp.uem.es/jccortizo
  josecarlos.cortizo@uem.es


 Departamento de Sistemas Informáticos
  Escuela Superior Politécnica
  Universidad Europea de Madrid
Índice



   Lucene
   Yahoo! BOSS




                 José Carlos Cortizo Pérez
Sistemas Inteligentes de Acceso a
la Información

LUCENE
Lucene
¿Qué es?


     Motor de búsqueda sobre texto
           Orientado a alto rendimiento
           Multiplataforma (Java)
           Open Source
           Con todas las características de un motor avanzado

                                                        José Carlos Cortizo Pérez
Lucene
Búsqueda e Indización



      Lucene es rápido buscando porque utiliza índices
      Inverted Index (palabras --> documentos)
      En Lucene, un Document es la unidad de búsqueda e indización
      Un Document puede ser un texto, pero también una tabla, u
      otro tipo de documento estructurado

                                                         José Carlos Cortizo Pérez
Lucene
Campos en Lucene



     Un Document consiste en uno o más Fields
     Un Field es un par nombre-valor
         P.e: title-King Kong
     La Indexación en Lucene, requiere crear un Documento
     agregando varios campos, y añadir ese Document al IndexWriter

                                                    José Carlos Cortizo Pérez
Lucene
Búsqueda y consultas


      El proceso de búsqueda requiere que se haya creado algún
      índice
      Necesita que se cree una Query (habitualmente a partir de un
      QueryParser) y llevar esta Query a un IndexSearcher, que
      devuelve una lista de coincidencias (Hits)
      Lucene tiene su propio minilenguaje para realizar búsquedas,
      permitiendo restricciones booleanas y otras funcionalidades

                                                      José Carlos Cortizo Pérez
Pasos por Proyecto
Determinar como quieres que se vean los resultados

      Es importante saber cómo quieres que se vean los resultados,
      porque en función de eso necesitaremos organizar algunas
      cosas. P.e:
          ¿Vas a mostrar snippets o no?
          ¿Cómo vas a enlazar a los documentos?
          ¿Qué orden vas a seguir con los resultados?
          ¿Qué forma de visualización?
                                                        José Carlos Cortizo Pérez
Pasos por Proyecto
Ej. código visualización


       System.out.println(quot;Found quot; +
       hits.length() + quot; hits.quot;);

       for(int i=0;i<hits.length();++i) {

            System.out.println((i + 1) + quot;. quot;
       + hits.doc(i).get(quot;titlequot;));

       }

                                       José Carlos Cortizo Pérez
Pasos por Proyecto
Mapear tu aplicación al modelo de Lucene


      A partir de la página de resultados, determina los pasos
      necesarios para llevar tu aplicación a Lucene
         ¿Cuáles son los campos del documento?
         Si tus datos están en una BBDD, ¿qué tablas y columnas
         necesitas? ¿qué SQL vas a ejecutar para recuperar esos
         datos?

                                                        José Carlos Cortizo Pérez
Pasos por Proyecto
Escribe el código de indexación




      Vengan de donde vengan los datos, lo primero es escribir tu
      propio Indexer
      Cuándo tengas creado el índice, puedes revisarlo con Luke



                                                       José Carlos Cortizo Pérez
Pasos por Proyecto
Escribe el código de indexación


      Directory index = new RAMDirectory();
      IndexWriter w = new IndexWriter(index,
      new StandardAnalyzer(), true);
      addDoc(w, quot;Lucene in Actionquot;);
      addDoc(w, quot;Lucene for Dummiesquot;);
      addDoc(w, quot;Managing Gigabytesquot;);
      addDoc(w, quot;The Art of Computer
      Sciencequot;);
      w.close();

                                   José Carlos Cortizo Pérez
Pasos por Proyecto
Escribe el código de indexación


      private static void addDoc(IndexWriter
      w, String value) throws IOException {

           Document doc = new Document();
           doc.add(new Field(quot;titlequot;,
      value,Field.Store.YES,
      Field.Index.TOKENIZED));
           w.addDocument(doc);
      }

                                   José Carlos Cortizo Pérez
Pasos por Proyecto
Escribe el código de búsqueda, en otra clase

      Es mejor separar la indexación de la búsqueda, tanto
      conceptualmente como de forma práctica
      El Searcher recibirá un String (consulta) y devolverá una lista de
      Hits
      Alguna funcionalidad adicional:
          Limitar el número de resultados
          Devolver páginas
                                                         José Carlos Cortizo Pérez
Pasos por Proyecto
Escribe el código de búsqueda (QUERY)




      String querystr = args.length > 0 ?
      args[0] : quot;lucenequot;;

      Query q = new QueryParser(quot;titlequot;, new
      StandardAnalyzer()).parse(querystr);




                                        José Carlos Cortizo Pérez
Pasos por Proyecto
Escribe el código de búsqueda (SEARCH)




      IndexSearcher s = new
      IndexSearcher(index);

      Hits hits = s.search(q);




                                         José Carlos Cortizo Pérez
Pasos por Proyecto
Implementar funcionalidades de búsqueda adicionales


      P.e.
             Filtrados por permisos
             Ordenar por fecha (o de otra forma)
             Buscar por tipo de fichero
             etc.

                                                      José Carlos Cortizo Pérez
Pasos por Proyecto
Comprueba que tus resultados tienen sentido




      Una exhaustiva fase de pruebas siempre es necesaria




                                                      José Carlos Cortizo Pérez
¿Alguna pregunta?




                    José Carlos Cortizo Pérez
Sistemas Inteligentes de Acceso a
la Información

Yahoo! BOSS
Yahoo! BOSS
¿Qué es?



     BOSS = Build your Own Search Service
     Es una plataforma abierta para la construcción de servicios web
     de búsqueda
     Objetivo: Promover la innovación de la industria de búsqueda
     ¿Quién está detrás? Evidentemente Yahoo! :D

                                                      José Carlos Cortizo Pérez
Yahoo! BOSS
¿Por qué usar Yahoo! BOSS?

      Aprovechar
          El ‘know-how’ de Yahoo!
          Sus algoritmos
          Su infraestructura
      Pero...
          Pudiendo aportar nuestra propia innovación
                                                       José Carlos Cortizo Pérez
Yahoo! BOSS
¿Quién lo está usando?



      Hakia: Un buscador semántico
      Me.dium Search: Buscador social
      Daylife: Plataforma de publicación de contenidos
      Cluuz: Clusteriza y ordena de forma gráfica los resultados


                                                         José Carlos Cortizo Pérez
Yahoo! BOSS
Limitaciones




               José Carlos Cortizo Pérez
Yahoo! BOSS
Requisitos




      Conseguir un BOSS App ID
             http://developer.yahoo.com/boss




                                               José Carlos Cortizo Pérez
Yahoo! BOSS
Ejemplo simple (PHP)




                       José Carlos Cortizo Pérez
Yahoo! BOSS



   Simple, ¿no?




                  José Carlos Cortizo Pérez
Yahoo! BOSS
¿Cómo funciona por detrás?



      El API de Yahoo! BOSS recibe una URL tipo
         http://boss.yahooapis.com/ysearch/web/v1/{query}?appid={youBOSSappid}
         [&param1=val1&param2=val2&etc]

         Ej: http://boss.yahooapis.com/ysearch/web/v1/sinai?appid= {youBOSSappid}

      La procesa y devuelve los resultados en formato XML, de forma
      que podemos procesarlos y extraer la info

                                                                    José Carlos Cortizo Pérez
Yahoo! BOSS
¿Cómo funciona por detrás?




                             José Carlos Cortizo Pérez
Yahoo! BOSS
¿Cómo funciona por detrás?




      En función de la URL accedemos a diversos servicios (búsqueda
      sobre web, noticias, imágenes), diversos parámetros y diversas
      consultas




                                                       José Carlos Cortizo Pérez
Yahoo! BOSS
URLS
       Web
          http://boss.yahooapis.com/ysearch/web/v1/{query}?appid={youBOSSappid}
          [&param1=val1&param2=val2&etc]


       Imágenes
          http://boss.yahooapis.com/ysearch/images/v1/{query}?appid=xyz[&param1=val1&param2=val2&etc


       Noticias
          http://boss.yahooapis.com/ysearch/news/v1/{query}?appid=xyz[&param1=val1&param2=val2&etc


       Spelling
          http://boss.yahooapis.com/ysearch/spelling/v1/{query}?appid=xyz[&param1=val1&param2=val2&etc
                                                                                      José Carlos Cortizo Pérez
Yahoo! BOSS
   Pero, si Yahoo! BOSS se encarga de casi todo, ¿yo qué hago?
   Innovar, por supuesto :D
      “Mezclar” las búsquedas de Yahoo! BOSS con las de otros, p.e. las de Google: http://
      code.google.com/apis/ajaxsearch/

      Reordenar los resultados

      Clusterizar

      Ordenar en líneas temporales

      Hacer buscadores específicos para medios sociales

      Etc.                                                            José Carlos Cortizo Pérez
¿Alguna pregunta?




                    José Carlos Cortizo Pérez
Bibliografía
Adicional

      http://www.lucenetutorial.com
      Raymond Mooney. Basic Tokenizing, Indexing and
      Implementation of Vector-Space Retrieval. Tema 3, curso IR.
            http://www.cs.utexas.edu/~mooney/ir-course/slides/Evaluation.ppt

      Tutorial: Create a Yahoo BOSS powered Site Search Engine
            http://www.labnol.org/internet/tutorial-create-yahoo-boss-site-search/5636/

      Yahoo! BOSS doc: http://developer.yahoo.com/search/boss
                                                                           José Carlos Cortizo Pérez
¿Alguna pregunta?




                    José Carlos Cortizo Pérez

Contenu connexe

Similaire à Lucene y Yahoo BOSS: Motores de búsqueda abiertos

GOOGLE SPREADSHEET avanzado para análisis y reporting SEO
GOOGLE SPREADSHEET avanzado para análisis y reporting SEOGOOGLE SPREADSHEET avanzado para análisis y reporting SEO
GOOGLE SPREADSHEET avanzado para análisis y reporting SEOJosé B. Moreno Suárez
 
Search engine optimization final
Search engine optimization finalSearch engine optimization final
Search engine optimization finalNicolás Cabane
 
Motores de busqueda en internet
Motores de busqueda en internetMotores de busqueda en internet
Motores de busqueda en internetsantiagovi
 
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...Juan Carlos Gonzalez
 
Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...
Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...
Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...Ricardo Tayar López
 
Patrick aljordcampuspartysl
Patrick aljordcampuspartyslPatrick aljordcampuspartysl
Patrick aljordcampuspartyslcampus party
 
Patrick aljordcampuspartysl
Patrick aljordcampuspartyslPatrick aljordcampuspartysl
Patrick aljordcampuspartyslcampus party
 
Curso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para ImprimirloCurso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para Imprimirlohmosquera
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion juandavid1118
 
Shapado: Como ganar dinero con el software libre
Shapado: Como ganar dinero con el software libreShapado: Como ganar dinero con el software libre
Shapado: Como ganar dinero con el software librePat Cito
 
Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016jorge Muchaypiña
 
Sesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptxSesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptxAndersonHernandezara
 
Tu negocio en internet. WordPress (nivel medio)
Tu negocio en internet. WordPress (nivel medio)Tu negocio en internet. WordPress (nivel medio)
Tu negocio en internet. WordPress (nivel medio)Fundació Bit
 

Similaire à Lucene y Yahoo BOSS: Motores de búsqueda abiertos (20)

Python
PythonPython
Python
 
PYTHON ORIENTADO A OBJETOS
PYTHON ORIENTADO A OBJETOSPYTHON ORIENTADO A OBJETOS
PYTHON ORIENTADO A OBJETOS
 
GOOGLE SPREADSHEET avanzado para análisis y reporting SEO
GOOGLE SPREADSHEET avanzado para análisis y reporting SEOGOOGLE SPREADSHEET avanzado para análisis y reporting SEO
GOOGLE SPREADSHEET avanzado para análisis y reporting SEO
 
Gestion del conocimiento
Gestion del conocimientoGestion del conocimiento
Gestion del conocimiento
 
Gestion del conocimiento
Gestion del conocimientoGestion del conocimiento
Gestion del conocimiento
 
FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017
 
Search engine optimization final
Search engine optimization finalSearch engine optimization final
Search engine optimization final
 
Motores de busqueda en internet
Motores de busqueda en internetMotores de busqueda en internet
Motores de busqueda en internet
 
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
 
Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...
Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...
Jornada / curso sobre posicionamiento web / SEO. Bloque I. Como funciona un b...
 
Patrick aljordcampuspartysl
Patrick aljordcampuspartyslPatrick aljordcampuspartysl
Patrick aljordcampuspartysl
 
Patrick aljordcampuspartysl
Patrick aljordcampuspartyslPatrick aljordcampuspartysl
Patrick aljordcampuspartysl
 
Curso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para ImprimirloCurso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para Imprimirlo
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
Sistemas en WordPress: WPDB, Ajax, custom fields y otras magias
Sistemas en WordPress: WPDB, Ajax, custom fields y otras magiasSistemas en WordPress: WPDB, Ajax, custom fields y otras magias
Sistemas en WordPress: WPDB, Ajax, custom fields y otras magias
 
Shapado: Como ganar dinero con el software libre
Shapado: Como ganar dinero con el software libreShapado: Como ganar dinero con el software libre
Shapado: Como ganar dinero con el software libre
 
La biblia del foot printing
La biblia del foot printingLa biblia del foot printing
La biblia del foot printing
 
Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016
 
Sesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptxSesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptx
 
Tu negocio en internet. WordPress (nivel medio)
Tu negocio en internet. WordPress (nivel medio)Tu negocio en internet. WordPress (nivel medio)
Tu negocio en internet. WordPress (nivel medio)
 

Plus de Jose Carlos Cortizo Perez

13+2 Herramientas eCommerce españolas para Vender Más
13+2 Herramientas eCommerce españolas para Vender Más13+2 Herramientas eCommerce españolas para Vender Más
13+2 Herramientas eCommerce españolas para Vender MásJose Carlos Cortizo Perez
 
Ecommerce B2B - Una Nueva Esperanza #B2BSalesCongress
Ecommerce B2B - Una Nueva Esperanza #B2BSalesCongressEcommerce B2B - Una Nueva Esperanza #B2BSalesCongress
Ecommerce B2B - Una Nueva Esperanza #B2BSalesCongressJose Carlos Cortizo Perez
 
Adobe compra Magento: El sentimiento de la Comunidad Magento y eCommerce
Adobe compra Magento: El sentimiento de la Comunidad Magento y eCommerceAdobe compra Magento: El sentimiento de la Comunidad Magento y eCommerce
Adobe compra Magento: El sentimiento de la Comunidad Magento y eCommerceJose Carlos Cortizo Perez
 
Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18Jose Carlos Cortizo Perez
 
La psicología de la Compra - Sobre Neandertales perdidos en Internet
La psicología de la Compra - Sobre Neandertales perdidos en InternetLa psicología de la Compra - Sobre Neandertales perdidos en Internet
La psicología de la Compra - Sobre Neandertales perdidos en InternetJose Carlos Cortizo Perez
 
Bye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplify
Bye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplifyBye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplify
Bye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplifyJose Carlos Cortizo Perez
 
Los retos a nivel de negocio del eCommerce B2B
Los retos a nivel de negocio del eCommerce B2BLos retos a nivel de negocio del eCommerce B2B
Los retos a nivel de negocio del eCommerce B2BJose Carlos Cortizo Perez
 
The Reality of Gamified Loyalty in eCommerce - GWC2014
The Reality of Gamified Loyalty in eCommerce - GWC2014The Reality of Gamified Loyalty in eCommerce - GWC2014
The Reality of Gamified Loyalty in eCommerce - GWC2014Jose Carlos Cortizo Perez
 
Hablando de Gamificación en Botanic Fridays
Hablando de Gamificación en Botanic FridaysHablando de Gamificación en Botanic Fridays
Hablando de Gamificación en Botanic FridaysJose Carlos Cortizo Perez
 
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerceCómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerceJose Carlos Cortizo Perez
 
Convierte a tus usuarios en clientes - MesComercio 2012
Convierte a tus usuarios en clientes - MesComercio 2012Convierte a tus usuarios en clientes - MesComercio 2012
Convierte a tus usuarios en clientes - MesComercio 2012Jose Carlos Cortizo Perez
 
Redes Sociales y Videojuegos: una unión perfecta
Redes Sociales y Videojuegos: una unión perfectaRedes Sociales y Videojuegos: una unión perfecta
Redes Sociales y Videojuegos: una unión perfectaJose Carlos Cortizo Perez
 
Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...
Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...
Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...Jose Carlos Cortizo Perez
 

Plus de Jose Carlos Cortizo Perez (20)

13+2 Herramientas eCommerce españolas para Vender Más
13+2 Herramientas eCommerce españolas para Vender Más13+2 Herramientas eCommerce españolas para Vender Más
13+2 Herramientas eCommerce españolas para Vender Más
 
Ecommerce B2B - Una Nueva Esperanza #B2BSalesCongress
Ecommerce B2B - Una Nueva Esperanza #B2BSalesCongressEcommerce B2B - Una Nueva Esperanza #B2BSalesCongress
Ecommerce B2B - Una Nueva Esperanza #B2BSalesCongress
 
Adobe compra Magento: El sentimiento de la Comunidad Magento y eCommerce
Adobe compra Magento: El sentimiento de la Comunidad Magento y eCommerceAdobe compra Magento: El sentimiento de la Comunidad Magento y eCommerce
Adobe compra Magento: El sentimiento de la Comunidad Magento y eCommerce
 
Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18
 
La psicología de la Compra - Sobre Neandertales perdidos en Internet
La psicología de la Compra - Sobre Neandertales perdidos en InternetLa psicología de la Compra - Sobre Neandertales perdidos en Internet
La psicología de la Compra - Sobre Neandertales perdidos en Internet
 
Fidelizacion Ecommerce: La Última Frontera
Fidelizacion Ecommerce: La Última FronteraFidelizacion Ecommerce: La Última Frontera
Fidelizacion Ecommerce: La Última Frontera
 
Bye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplify
Bye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplifyBye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplify
Bye Bye Personalización: La Era de las Experiencias Personales #MagnoliaAmplify
 
Black Friday 2016: ¿Qué podemos esperar?
Black Friday 2016: ¿Qué podemos esperar?Black Friday 2016: ¿Qué podemos esperar?
Black Friday 2016: ¿Qué podemos esperar?
 
Los retos a nivel de negocio del eCommerce B2B
Los retos a nivel de negocio del eCommerce B2BLos retos a nivel de negocio del eCommerce B2B
Los retos a nivel de negocio del eCommerce B2B
 
Growth Hackeando tu eCommerce
Growth Hackeando tu eCommerceGrowth Hackeando tu eCommerce
Growth Hackeando tu eCommerce
 
Gamification workshop at the QSP Summit
Gamification workshop at the QSP SummitGamification workshop at the QSP Summit
Gamification workshop at the QSP Summit
 
The Reality of Gamified Loyalty in eCommerce - GWC2014
The Reality of Gamified Loyalty in eCommerce - GWC2014The Reality of Gamified Loyalty in eCommerce - GWC2014
The Reality of Gamified Loyalty in eCommerce - GWC2014
 
Hablando de Gamificación en Botanic Fridays
Hablando de Gamificación en Botanic FridaysHablando de Gamificación en Botanic Fridays
Hablando de Gamificación en Botanic Fridays
 
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerceCómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerce
 
Introducción a la Gamificación
Introducción a la GamificaciónIntroducción a la Gamificación
Introducción a la Gamificación
 
Convierte a tus usuarios en clientes - MesComercio 2012
Convierte a tus usuarios en clientes - MesComercio 2012Convierte a tus usuarios en clientes - MesComercio 2012
Convierte a tus usuarios en clientes - MesComercio 2012
 
Open Source en Educación
Open Source en EducaciónOpen Source en Educación
Open Source en Educación
 
Redes Sociales y Videojuegos: una unión perfecta
Redes Sociales y Videojuegos: una unión perfectaRedes Sociales y Videojuegos: una unión perfecta
Redes Sociales y Videojuegos: una unión perfecta
 
Emprendiendo desde la Universidad
Emprendiendo desde la UniversidadEmprendiendo desde la Universidad
Emprendiendo desde la Universidad
 
Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...
Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...
Gamificacion y Docencia: o que la Universidad tiene que aprender de los Video...
 

Dernier

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 

Dernier (20)

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 

Lucene y Yahoo BOSS: Motores de búsqueda abiertos

  • 1. En la práctica: Lucene y Yahoo! BOSS José Carlos Cortizo Pérez http://www.esp.uem.es/jccortizo josecarlos.cortizo@uem.es Departamento de Sistemas Informáticos Escuela Superior Politécnica Universidad Europea de Madrid
  • 2. Índice Lucene Yahoo! BOSS José Carlos Cortizo Pérez
  • 3. Sistemas Inteligentes de Acceso a la Información LUCENE
  • 4. Lucene ¿Qué es? Motor de búsqueda sobre texto Orientado a alto rendimiento Multiplataforma (Java) Open Source Con todas las características de un motor avanzado José Carlos Cortizo Pérez
  • 5. Lucene Búsqueda e Indización Lucene es rápido buscando porque utiliza índices Inverted Index (palabras --> documentos) En Lucene, un Document es la unidad de búsqueda e indización Un Document puede ser un texto, pero también una tabla, u otro tipo de documento estructurado José Carlos Cortizo Pérez
  • 6. Lucene Campos en Lucene Un Document consiste en uno o más Fields Un Field es un par nombre-valor P.e: title-King Kong La Indexación en Lucene, requiere crear un Documento agregando varios campos, y añadir ese Document al IndexWriter José Carlos Cortizo Pérez
  • 7. Lucene Búsqueda y consultas El proceso de búsqueda requiere que se haya creado algún índice Necesita que se cree una Query (habitualmente a partir de un QueryParser) y llevar esta Query a un IndexSearcher, que devuelve una lista de coincidencias (Hits) Lucene tiene su propio minilenguaje para realizar búsquedas, permitiendo restricciones booleanas y otras funcionalidades José Carlos Cortizo Pérez
  • 8. Pasos por Proyecto Determinar como quieres que se vean los resultados Es importante saber cómo quieres que se vean los resultados, porque en función de eso necesitaremos organizar algunas cosas. P.e: ¿Vas a mostrar snippets o no? ¿Cómo vas a enlazar a los documentos? ¿Qué orden vas a seguir con los resultados? ¿Qué forma de visualización? José Carlos Cortizo Pérez
  • 9. Pasos por Proyecto Ej. código visualización System.out.println(quot;Found quot; + hits.length() + quot; hits.quot;); for(int i=0;i<hits.length();++i) { System.out.println((i + 1) + quot;. quot; + hits.doc(i).get(quot;titlequot;)); } José Carlos Cortizo Pérez
  • 10. Pasos por Proyecto Mapear tu aplicación al modelo de Lucene A partir de la página de resultados, determina los pasos necesarios para llevar tu aplicación a Lucene ¿Cuáles son los campos del documento? Si tus datos están en una BBDD, ¿qué tablas y columnas necesitas? ¿qué SQL vas a ejecutar para recuperar esos datos? José Carlos Cortizo Pérez
  • 11. Pasos por Proyecto Escribe el código de indexación Vengan de donde vengan los datos, lo primero es escribir tu propio Indexer Cuándo tengas creado el índice, puedes revisarlo con Luke José Carlos Cortizo Pérez
  • 12. Pasos por Proyecto Escribe el código de indexación Directory index = new RAMDirectory(); IndexWriter w = new IndexWriter(index, new StandardAnalyzer(), true); addDoc(w, quot;Lucene in Actionquot;); addDoc(w, quot;Lucene for Dummiesquot;); addDoc(w, quot;Managing Gigabytesquot;); addDoc(w, quot;The Art of Computer Sciencequot;); w.close(); José Carlos Cortizo Pérez
  • 13. Pasos por Proyecto Escribe el código de indexación private static void addDoc(IndexWriter w, String value) throws IOException { Document doc = new Document(); doc.add(new Field(quot;titlequot;, value,Field.Store.YES, Field.Index.TOKENIZED)); w.addDocument(doc); } José Carlos Cortizo Pérez
  • 14. Pasos por Proyecto Escribe el código de búsqueda, en otra clase Es mejor separar la indexación de la búsqueda, tanto conceptualmente como de forma práctica El Searcher recibirá un String (consulta) y devolverá una lista de Hits Alguna funcionalidad adicional: Limitar el número de resultados Devolver páginas José Carlos Cortizo Pérez
  • 15. Pasos por Proyecto Escribe el código de búsqueda (QUERY) String querystr = args.length > 0 ? args[0] : quot;lucenequot;; Query q = new QueryParser(quot;titlequot;, new StandardAnalyzer()).parse(querystr); José Carlos Cortizo Pérez
  • 16. Pasos por Proyecto Escribe el código de búsqueda (SEARCH) IndexSearcher s = new IndexSearcher(index); Hits hits = s.search(q); José Carlos Cortizo Pérez
  • 17. Pasos por Proyecto Implementar funcionalidades de búsqueda adicionales P.e. Filtrados por permisos Ordenar por fecha (o de otra forma) Buscar por tipo de fichero etc. José Carlos Cortizo Pérez
  • 18. Pasos por Proyecto Comprueba que tus resultados tienen sentido Una exhaustiva fase de pruebas siempre es necesaria José Carlos Cortizo Pérez
  • 19. ¿Alguna pregunta? José Carlos Cortizo Pérez
  • 20. Sistemas Inteligentes de Acceso a la Información Yahoo! BOSS
  • 21. Yahoo! BOSS ¿Qué es? BOSS = Build your Own Search Service Es una plataforma abierta para la construcción de servicios web de búsqueda Objetivo: Promover la innovación de la industria de búsqueda ¿Quién está detrás? Evidentemente Yahoo! :D José Carlos Cortizo Pérez
  • 22. Yahoo! BOSS ¿Por qué usar Yahoo! BOSS? Aprovechar El ‘know-how’ de Yahoo! Sus algoritmos Su infraestructura Pero... Pudiendo aportar nuestra propia innovación José Carlos Cortizo Pérez
  • 23. Yahoo! BOSS ¿Quién lo está usando? Hakia: Un buscador semántico Me.dium Search: Buscador social Daylife: Plataforma de publicación de contenidos Cluuz: Clusteriza y ordena de forma gráfica los resultados José Carlos Cortizo Pérez
  • 24. Yahoo! BOSS Limitaciones José Carlos Cortizo Pérez
  • 25. Yahoo! BOSS Requisitos Conseguir un BOSS App ID http://developer.yahoo.com/boss José Carlos Cortizo Pérez
  • 26. Yahoo! BOSS Ejemplo simple (PHP) José Carlos Cortizo Pérez
  • 27. Yahoo! BOSS Simple, ¿no? José Carlos Cortizo Pérez
  • 28. Yahoo! BOSS ¿Cómo funciona por detrás? El API de Yahoo! BOSS recibe una URL tipo http://boss.yahooapis.com/ysearch/web/v1/{query}?appid={youBOSSappid} [&param1=val1&param2=val2&etc] Ej: http://boss.yahooapis.com/ysearch/web/v1/sinai?appid= {youBOSSappid} La procesa y devuelve los resultados en formato XML, de forma que podemos procesarlos y extraer la info José Carlos Cortizo Pérez
  • 29. Yahoo! BOSS ¿Cómo funciona por detrás? José Carlos Cortizo Pérez
  • 30. Yahoo! BOSS ¿Cómo funciona por detrás? En función de la URL accedemos a diversos servicios (búsqueda sobre web, noticias, imágenes), diversos parámetros y diversas consultas José Carlos Cortizo Pérez
  • 31. Yahoo! BOSS URLS Web http://boss.yahooapis.com/ysearch/web/v1/{query}?appid={youBOSSappid} [&param1=val1&param2=val2&etc] Imágenes http://boss.yahooapis.com/ysearch/images/v1/{query}?appid=xyz[&param1=val1&param2=val2&etc Noticias http://boss.yahooapis.com/ysearch/news/v1/{query}?appid=xyz[&param1=val1&param2=val2&etc Spelling http://boss.yahooapis.com/ysearch/spelling/v1/{query}?appid=xyz[&param1=val1&param2=val2&etc José Carlos Cortizo Pérez
  • 32. Yahoo! BOSS Pero, si Yahoo! BOSS se encarga de casi todo, ¿yo qué hago? Innovar, por supuesto :D “Mezclar” las búsquedas de Yahoo! BOSS con las de otros, p.e. las de Google: http:// code.google.com/apis/ajaxsearch/ Reordenar los resultados Clusterizar Ordenar en líneas temporales Hacer buscadores específicos para medios sociales Etc. José Carlos Cortizo Pérez
  • 33. ¿Alguna pregunta? José Carlos Cortizo Pérez
  • 34. Bibliografía Adicional http://www.lucenetutorial.com Raymond Mooney. Basic Tokenizing, Indexing and Implementation of Vector-Space Retrieval. Tema 3, curso IR. http://www.cs.utexas.edu/~mooney/ir-course/slides/Evaluation.ppt Tutorial: Create a Yahoo BOSS powered Site Search Engine http://www.labnol.org/internet/tutorial-create-yahoo-boss-site-search/5636/ Yahoo! BOSS doc: http://developer.yahoo.com/search/boss José Carlos Cortizo Pérez
  • 35. ¿Alguna pregunta? José Carlos Cortizo Pérez