Julián Klas - jklas@fi.uba.ar Recuperación de Información sobre Modelos de Dominio Facultad de Ingeniería, Universidad de ...
Recuperación de Información <ul><li>¿Qué es? </li></ul><ul><li> “ el área de las Ciencias de la Computación que trata la r...
Ejemplos de IR <ul><li>Para Usuarios Finales, Público </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar ...
Ejemplos de IR <ul><li>Para Usuarios Finales, Privado </li></ul>Julián Klas - jklas@fi.uba.ar Introducción y Antecedentes ...
Ejemplos de IR <ul><li>Para Desarrolladores, sobre Texto </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar
Ejemplos de IR <ul><li>Para Desarrolladores,  sobre Objetos </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.u...
Propuesta <ul><li>Para Desarrolladores,  sobre Objetos </li></ul>Domain Model Search Introducción y Antecedentes Julián Kl...
Resumen <ul><li>¿De qué trata este trabajo? </li></ul><ul><li>Es  un  análisis  de requerimientos y alternativas para cons...
Contexto <ul><li>Domain Model </li></ul><ul><li>“ un modelo de objetos de un dominio que incorpora tanto comportamiento co...
Análisis del Problema <ul><li>Actividades de un Search Engine sobre Objetos </li></ul><ul><ul><li>Ranking y Relevancia </l...
Ranking y Relevancia <ul><ul><li>Ranking Estructural </li></ul></ul><ul><ul><ul><li>Ranking Estático: clases </li></ul></u...
Indexación <ul><li>Indexación + Integración implica: </li></ul><ul><li>Niveles de Independencia del Domain Model </li></ul...
Indexación - Independencia del Modelo de Dominio <ul><li>Modelo de Dominio  Dependiente </li></ul><ul><ul><li>public class...
Indexación - Independencia del Modelo de Dominio <ul><li>Modelo de Dominio  Semi Independiente </li></ul><ul><ul><li>@Inde...
Indexación - Independencia del Modelo de Dominio <ul><li>Modelo de Dominio  Independiente </li></ul><ul><li><domain-model-...
Indexación: proceso de indexación <ul><li>Indexación Online </li></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
Indexación: proceso de indexación <ul><li>Indexación Semi Online </li></ul>Análisis del Problema Julián Klas - jklas@fi.ub...
Indexación: proceso de indexación <ul><li>Indexación Offline </li></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
Indexación: Reindexación <ul><ul><li>Causada por: </li></ul></ul><ul><ul><ul><li>Pérdida accidental de datos </li></ul></u...
Indexación: Almacenamiento del Índice Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><ul><li>Base de Datos </li><...
Seguridad <ul><ul><li>Indexación de Datos Sensibles </li></ul></ul><ul><ul><li>Ej: información financiera </li></ul></ul><...
Recuperación de Objetos y Caché Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><ul><li>Búsqueda </li></ul></ul><u...
Visualización Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><li>Objetivo: interfaz clara para transformar listad...
Visualización Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><li>Metadatos </li></ul><ul><ul><li><search-visualiz...
Framework <ul><li>Framework vs. Librería </li></ul><ul><ul><li>Un framework es extensible, una librería es adaptable </li>...
Conclusiones Conclusiones y Trabajos Futuros Julián Klas - jklas@fi.uba.ar <ul><li>Clasificamos los sistemas de IR, entend...
Recuperación de Información sobre Modelos de Dominio Preguntas Julián Klas - jklas@fi.uba.ar ¿Preguntas?
Anexo I <ul><li>Apache Lucene:  search engine open source más difundido  </li></ul><ul><li>¿Por qué no usar Lucene para ha...
Anexo II <ul><ul><li>SÓLO SIRVE PARA DOMAIN MODELS? </li></ul></ul><ul><ul><li>Sirve para otros, la idea es poder indexar ...
Upcoming SlideShare
Loading in …5
×

Recuperación de Información sobre Modelos de Dominio - Presentación JAIIO

1,098 views
1,056 views

Published on

Presentación en las 38 JAIIO acerca del artículo con mismo título

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,098
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • PRESENTACIÓN PERSONAL TESIS AL MOMENTO DE HACER ESTE TRABAJO ERA ANÁLISIS, AHORA ES DISEÑO
  • INTRO PARA QUE TODOS ESTEMOS SINCRONIZADOS
  • WEB SEARCH MARKETPLACE USUARIOS FINALES Consumidores finales del producto PUBLICO Fuera de ámbito privado : empresa, etc
  • PERSONAL WINDOWS VISTA DEKSTOP SEARCH GOOGLE DESKTOP MARKETPLACE ORACLE ENTERPRISE SEARCH: EMAILS, INTRANET CORP GOOGLE APPLIANCE: INTRANET, PDFS, ETC USUARIOS FINALES Consumidores finales del producto PUBLICO Fuera de ámbito privado : empresa, etc
  • DESARROLLADORES Genéricos, cross problem domain Los usan los desarrolladores, no los usuarios finales TEXTO Corpus : documentos y campos Pensado para páginas web , libros , etc APACHE LUCENE , LUCENE.NET , SOLR , NUTCH , (OTROS)
  • DESARROLLADORES IGUAL QUE ANTES OBJETOS EL Corpus : OBJETOS Pensado para modelos de dominio y ORMs EJEMPLOS HIBERNATE SEARCH COMPASS LUCENE MODELO HÍBRIDO, HACEN MAPEO A DOCUMENTOS
  • DESARROLLADORES IGUAL QUE ANTES OBJETOS IGUAL QUE ANTES DIFERENCIA CON LO ANTERIOR PENSADO PARA OBJETOS, NO ES UN HACK HERENCIA, ASOCIACION, POLIMORFISMO ORMS NO DEPENDE DE NINGUNO
  • PUNTOS CLAVE ARTÍCULO ES ANÁLISIS, HOY HAY DISEÑO FRAMEWORK PARA SEARCH ENGINES HAY MODELOS DE DOMINIO APLICACIONES NUEVAS O EXISTENTES, INTEGRABLE
  • EL CONTEXTO TIENE 3 PATAS Domain Models Mapeos ORM Sistemas Enterprise
  • ACTIVIDADES SON LAS COSAS QUE HAY QUE RESOLVER ALGUNAS LAS RESUELVE EL SEARCH OTRAS LAS RESUELVE EL USUARIO
  • RANKING ESTRUCTURAL FOTO DEL SISTEMA HITS Y PAGERANK FUNCIONAN BIEN WEB, PUEDEN HACERLO EN OBJETOS DEPENDIENTE DEL NEGOCIO  SI TENGO UN LINKEDIN VOY A HACER MI PROPIO ALGORITMO DE RELEVANCIA RANKING POR CORRELACIÓN DEPENDE DE LA QUERY PUNTUAL HAY MODELOS DE CLÁSICOS DE IR QUE SE PUEDEN USAR TÉCNICAS DE MATCHING SIEMPRE SON NECESARIAS ES BUENO DAR POSIBILIDAD DE AMPLIARLAS O CAMBIARLAS
  • Queremos independencia para:
  • Queremos independencia para:
  • Polución del código con anotaciones dependientes del framework Requiere acceso al source code para recompilarlo Modificación ’en caliente’ requiere recompilar el código y redesplegar ,
  • Agrega un arbol en la jungla de XMLs No aporta mucho más a la discusión
  • Es necesario poder reconocer cambios de estado  UNIT OF WORK, CALLBACKS, etc Indexa apenas cambia estado de indexación (posibles valores de los campos indexables) IDX ONLINE: muchas actualizaciones en paralelo  necesito mucho recursos o baja concurrencia
  • Recuperación de Información sobre Modelos de Dominio - Presentación JAIIO

    1. 1. Julián Klas - jklas@fi.uba.ar Recuperación de Información sobre Modelos de Dominio Facultad de Ingeniería, Universidad de Buenos Aires
    2. 2. Recuperación de Información <ul><li>¿Qué es? </li></ul><ul><li> “ el área de las Ciencias de la Computación que trata la representación, almacenamiento, organización y acceso a ítems de información” [Baeza99] </li></ul><ul><li>¿Cómo Funciona? </li></ul><ul><li>el usuario ingresa su necesidad de información en lenguaje natural, el sistema entrega una lista priorizada de resultados relevantes </li></ul><ul><li>¿Cuáles son las principales variantes? </li></ul><ul><li>Publico vs. Privado </li></ul><ul><li>Usuario Final vs. Desarrollo </li></ul><ul><li>Texto vs. Objetos </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar
    3. 3. Ejemplos de IR <ul><li>Para Usuarios Finales, Público </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar Marketplace Search Web Search
    4. 4. Ejemplos de IR <ul><li>Para Usuarios Finales, Privado </li></ul>Julián Klas - jklas@fi.uba.ar Introducción y Antecedentes Personal Enteprise
    5. 5. Ejemplos de IR <ul><li>Para Desarrolladores, sobre Texto </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar
    6. 6. Ejemplos de IR <ul><li>Para Desarrolladores, sobre Objetos </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar
    7. 7. Propuesta <ul><li>Para Desarrolladores, sobre Objetos </li></ul>Domain Model Search Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar
    8. 8. Resumen <ul><li>¿De qué trata este trabajo? </li></ul><ul><li>Es un análisis de requerimientos y alternativas para construir un framework que resuelva problemas de recuperación de la información sobre modelos de dominio </li></ul><ul><li>La principal contribución de este artículo es el análisis de alternativas para crear un framework reusable y extensible que permita crear un motor de búsqueda para aplicaciones nuevas o existentes , a las que se pude integrar como otros frameworks de presentación, acceso a datos o remotización. </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar
    9. 9. Contexto <ul><li>Domain Model </li></ul><ul><li>“ un modelo de objetos de un dominio que incorpora tanto comportamiento como datos” [Fowler02] </li></ul><ul><li>Object Relational Mapping </li></ul><ul><li>“ aislan las clases del dominio del esquema de la base de datos” [Fowler02] </li></ul><ul><li>Arquitecturas Enterprise </li></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar <ul><ul><li>transversales </li></ul></ul><ul><ul><li>3 tier </li></ul></ul><ul><ul><li>RDBMS transaccionales </li></ul></ul><ul><ul><li>distribuidos ó clusterizados </li></ul></ul><ul><ul><li>middlewares y contenedores </li></ul></ul><ul><ul><li>concurrencia </li></ul></ul><ul><ul><li>alto costo de desarrollo y mantenimiento </li></ul></ul>
    10. 10. Análisis del Problema <ul><li>Actividades de un Search Engine sobre Objetos </li></ul><ul><ul><li>Ranking y Relevancia </li></ul></ul><ul><ul><li>Indexación </li></ul></ul><ul><ul><li>Seguridad </li></ul></ul><ul><ul><li>Técnicas de Matching </li></ul></ul><ul><ul><li>User Feedback y Métricas </li></ul></ul><ul><ul><li>Recuperación de Objetos y Caché </li></ul></ul><ul><ul><li>Visualización </li></ul></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    11. 11. Ranking y Relevancia <ul><ul><li>Ranking Estructural </li></ul></ul><ul><ul><ul><li>Ranking Estático: clases </li></ul></ul></ul><ul><ul><ul><li>Ranking Dinámico: objetos </li></ul></ul></ul><ul><ul><ul><li>Algoritmos tipo HITS, PageRank </li></ul></ul></ul><ul><ul><ul><li>Dependiente del negocio  punto de extensión </li></ul></ul></ul><ul><ul><li>Ranking por Correlación con Query </li></ul></ul><ul><ul><li>Técnicas de Matching </li></ul></ul><ul><ul><ul><li>Stop Words, Stemming, Tesauros (sinonimia, corrección, Domain WordNet) </li></ul></ul></ul><ul><ul><ul><li>Queremos Intercambiabilidad de Algoritmos </li></ul></ul></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    12. 12. Indexación <ul><li>Indexación + Integración implica: </li></ul><ul><li>Niveles de Independencia del Domain Model </li></ul><ul><li>Proceso de indexación </li></ul><ul><li>Reindexación </li></ul><ul><li>Almacenamiento del Índice </li></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    13. 13. Indexación - Independencia del Modelo de Dominio <ul><li>Modelo de Dominio Dependiente </li></ul><ul><ul><li>public class Customer extends SearchObject { </li></ul></ul><ul><ul><li>public boolean isIndexable () {...} </li></ul></ul><ul><ul><li>public SearchResult findObjects(String userQuery) throws IndexSearchException {...} </li></ul></ul><ul><ul><li>public void indexObject() throws IndexingException {...} </li></ul></ul><ul><ul><li>} </li></ul></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    14. 14. Indexación - Independencia del Modelo de Dominio <ul><li>Modelo de Dominio Semi Independiente </li></ul><ul><ul><li>@Indexable </li></ul></ul><ul><ul><li>public class Customer { </li></ul></ul><ul><ul><ul><li>@IndexField(stemming=StemType. FULL_STEM, transform=&quot;customer-site transform&quot;) </li></ul></ul></ul><ul><ul><ul><li>private Site site; </li></ul></ul></ul><ul><ul><ul><li>@IndexField(stemming=StemType. FULL_STEM, lang=&quot;SPANISH&quot;) </li></ul></ul></ul><ul><ul><ul><li>private String firstName; </li></ul></ul></ul><ul><ul><ul><li>@IndexField </li></ul></ul></ul><ul><ul><ul><li>private String lastName; </li></ul></ul></ul><ul><ul><ul><li>private String email; </li></ul></ul></ul><ul><ul><ul><li>private String password; </li></ul></ul></ul><ul><ul><li>} </li></ul></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    15. 15. Indexación - Independencia del Modelo de Dominio <ul><li>Modelo de Dominio Independiente </li></ul><ul><li><domain-model-search> </li></ul><ul><ul><li><indexable class= “ Customer ” > </li></ul></ul><ul><ul><li><indexField name= “ site ” stemming= “ FULL_STEM ” transform= “ cust-site ”/ > </li></ul></ul><ul><ul><li><indexField name= “ firstName ” stemming= “ FULL_STEM ” lang=“ SPANISH ”/ > </li></ul></ul><ul><ul><li><indexField name= “ lastName ”/ > </li></ul></ul><ul><ul><li></indexable> </li></ul></ul><ul><li></domain-model-search> </li></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    16. 16. Indexación: proceso de indexación <ul><li>Indexación Online </li></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    17. 17. Indexación: proceso de indexación <ul><li>Indexación Semi Online </li></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    18. 18. Indexación: proceso de indexación <ul><li>Indexación Offline </li></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    19. 19. Indexación: Reindexación <ul><ul><li>Causada por: </li></ul></ul><ul><ul><ul><li>Pérdida accidental de datos </li></ul></ul></ul><ul><ul><ul><li>Errores / Bugs </li></ul></ul></ul><ul><ul><li>Registro de Objetos Indexados </li></ul></ul><ul><ul><ul><li>Para reconstruir el índice </li></ul></ul></ul><ul><ul><ul><li>Almacenado en DBMS ó Archivos </li></ul></ul></ul><ul><ul><li>Indexación </li></ul></ul><ul><ul><ul><li>Online / Semi-Online: requieren proceso ad hoc </li></ul></ul></ul><ul><ul><ul><ul><li>No hay contexto de la transacción de negocio </li></ul></ul></ul></ul><ul><ul><ul><li>Offline: muy similar a la indexación original </li></ul></ul></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    20. 20. Indexación: Almacenamiento del Índice Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><ul><li>Base de Datos </li></ul></ul>Archivos Índice Mapeado + APIs Existentes + Performance + Hereda las ventajas de los mapeadores <ul><ul><ul><li>+ Almacenamiento físico implementado y optimizado </li></ul></ul></ul>+ Disponibilidad - Hereda desventajas, en particular la performance <ul><ul><ul><li>+ Resuelve concurrencia mediante propiedades ACID </li></ul></ul></ul>+ Sin APIs externas, disponible desde cualquier lenguaje - Dificil de optimizar,cambiar almacenamiento, etc. - Overhead de propiedades ACID - Solución de bajo nivel  costo en desarrollo/ pruebas - Mantenimiento y tunning por personas especializadas - Puede derivar en soluciones suboptimas, peor que un RDBMS - Puede ser costoso - Concurrencia en manos del desarrollador
    21. 21. Seguridad <ul><ul><li>Indexación de Datos Sensibles </li></ul></ul><ul><ul><li>Ej: información financiera </li></ul></ul><ul><ul><li>Visualización de Datos Sensibles </li></ul></ul><ul><ul><ul><li>Roles y Permisos </li></ul></ul></ul><ul><ul><li>Seguridad en Índices </li></ul></ul><ul><ul><ul><li>Aspecto de Infraestructura </li></ul></ul></ul><ul><ul><ul><li>Transversal a la empresa – fuera de alcance </li></ul></ul></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    22. 22. Recuperación de Objetos y Caché Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><ul><li>Búsqueda </li></ul></ul><ul><ul><ul><li>Caché de Listados </li></ul></ul></ul><ul><ul><ul><li>Caché del Índice Invertido </li></ul></ul></ul><ul><ul><ul><li>Nivel de concurrencia posiblemente no acotado </li></ul></ul></ul><ul><ul><li>Indexación </li></ul></ul><ul><ul><ul><li>Para ranking estructural </li></ul></ul></ul><ul><ul><ul><li>Se puede usar el del ORM </li></ul></ul></ul><ul><ul><ul><li>Nivel de concurrencia posiblemente acotado </li></ul></ul></ul><ul><ul><li>Ambientes clusterizados: cachés remotos </li></ul></ul><ul><ul><li>Conclusión: arquitectura abierta a estas variantes </li></ul></ul>
    23. 23. Visualización Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><li>Objetivo: interfaz clara para transformar listado lógico en representación concreta </li></ul><ul><li>Implementaciones estándar para interoperar (XML) y visualizar (HTML) </li></ul><ul><li>Las vistas estándar tienen en cuenta aspectos de seguridad </li></ul><ul><li>Implementaciones avanzadas: por cuenta del usuario </li></ul>
    24. 24. Visualización Análisis del Problema Julián Klas - jklas@fi.uba.ar <ul><li>Metadatos </li></ul><ul><ul><li><search-visualization> </li></ul></ul><ul><ul><ul><li><view type=“ html ” default=“ yes ” > </li></ul></ul></ul><ul><ul><ul><ul><li><resultClass name=“ Person ” translator=“ com.mydomain.HtmlPersonTranslator ” /> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><resultClass default=“ yes ” translator =“ com.framework.ToStringTranslator ” /> </li></ul></ul></ul></ul><ul><ul><ul><li></view> </li></ul></ul></ul><ul><ul><ul><li><view type=“ xml ” > </li></ul></ul></ul><ul><ul><ul><ul><li><resultClass name=“ Person ” translator=“ com.mydomain.XmlPersonTranslator ” /> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><resultClass default=“ yes ” translator=“ com.framework.ReflectionTranslator ” /> </li></ul></ul></ul></ul><ul><ul><ul><li></view> </li></ul></ul></ul><ul><ul><li></search-visualization> </li></ul></ul>
    25. 25. Framework <ul><li>Framework vs. Librería </li></ul><ul><ul><li>Un framework es extensible, una librería es adaptable </li></ul></ul><ul><ul><li>Framework caja negra vs. Blanca </li></ul></ul><ul><ul><li>Podemos usar técnicas como Inyección de Dependencias e Inversión de Control </li></ul></ul><ul><li>Inyección de Dependencias </li></ul><ul><ul><li>Tipos de Indexación: online, semi-online, offline </li></ul></ul><ul><ul><li>Interceptor según ORM </li></ul></ul><ul><ul><li>DAO </li></ul></ul><ul><ul><li>Rankers </li></ul></ul><ul><li>Inversión del Control: </li></ul><ul><ul><li>Durante transacciones de negocio: el framework se llama cuando es necesario </li></ul></ul><ul><ul><li>Durante indexación, búsqueda y visualización: el framework llama al usuario cuando es necesario </li></ul></ul>Análisis del Problema Julián Klas - jklas@fi.uba.ar
    26. 26. Conclusiones Conclusiones y Trabajos Futuros Julián Klas - jklas@fi.uba.ar <ul><li>Clasificamos los sistemas de IR, entendiendo qué resuelve cada uno </li></ul><ul><li>Explicamos y demarcamos el problema de IR sobre objetos </li></ul><ul><li>Analizamos actividades y requerimientos para el framework </li></ul><ul><li>Profundizamos en alternativas de las actividades más importantes </li></ul><ul><li>Próximos pasos: </li></ul><ul><ul><li>Resultados sobre distintos Domain Models </li></ul></ul><ul><ul><li>Evaluar adecuación de los distintos modelos de IR </li></ul></ul><ul><ul><li>Verificar extensibilidad por el usuario (ej: scoring, visualización) </li></ul></ul>
    27. 27. Recuperación de Información sobre Modelos de Dominio Preguntas Julián Klas - jklas@fi.uba.ar ¿Preguntas?
    28. 28. Anexo I <ul><li>Apache Lucene: search engine open source más difundido </li></ul><ul><li>¿Por qué no usar Lucene para hacer IR sobre objetos? </li></ul><ul><li>Según Compass, s i bien Lucene da buenos resultados y es rápido: </li></ul><ul><ul><li>Dificil de integrar </li></ul></ul><ul><ul><li>APIs de bajo nivel </li></ul></ul><ul><ul><li>No transaccional </li></ul></ul><ul><ul><li>Otros: no soporta búsquedas sobre todos los campos del documento, no indexa en RDBMS, updates dificiles de implementar (generan duplicados) </li></ul></ul><ul><li>Según Hibernate Search: </li></ul><ul><ul><li>Structural Mismatch: traslado de objetos a índices </li></ul></ul><ul><ul><li>Duplication Mismatch: sincronización objetos-índice </li></ul></ul><ul><ul><li>API Mismatch: recuperar objetos como en el ORM </li></ul></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar
    29. 29. Anexo II <ul><ul><li>SÓLO SIRVE PARA DOMAIN MODELS? </li></ul></ul><ul><ul><li>Sirve para otros, la idea es poder indexar el modelo de objetos y aprovechar su estructura </li></ul></ul><ul><ul><li>QUÉ TIENE DE NUEVO RESPECTO DE HIBERNATE SEARCH, COMPASS, ETC? </li></ul></ul><ul><ul><li>Haría falta un experto en hibernate search y compass para saber si cubren todos estos puntos </li></ul></ul><ul><ul><li>Entendemos que lucene no está pensado para objetos, no habría que haber empezado por ahí (es un hack) </li></ul></ul><ul><ul><li>No usamos lucene ni tenemos dependencias con un ORM (caso hibernate). </li></ul></ul><ul><ul><li>Este trabajo es el análisis de qué hace falta, las variantes y consecuencias, no se basa en qué hicieron estas dos herramientas, la comparativa vendrá en la tesis </li></ul></ul>Introducción y Antecedentes Julián Klas - jklas@fi.uba.ar

    ×