Please use this identifier to cite or link to this item: http://hdl.handle.net/10773/40562
Title: Development of the data model and search engine for a moment retrieval application
Other Titles: Desenvolvimento do modelo de dados e motor de pesquisa para uma aplicação de recuperação de momentos
Author: Wei Ye
Advisor: Neves, António José Ribeiro
Keywords: Search engine
Neo4j
Graph oriented database
Full-text search
Lucene
Image retrieval
Data model
Defense Date: 6-Jul-2023
Abstract: Lifelogging is the practice of continuously recording various aspects of everday life using digital devices such as cameras, sensors, and wearable technology. It involves capturing data about daily activities, experiences, and personal metrics such as location, heart rate, sleep patterns, and more. The Lifelog Search Challenge (LSC) is an international competition focused on solving problems related to life log retrieval. This dissertation is specifically designed to address the challenge of efficient and effective retrieval of lifelog records and is intended to participate in the Lifelog Search Challenge (LSC) 2023. However, the MEMORIA retrieval system has encountered efficiency challenges, leading to unsatisfactory performance in meeting users’ retrieval needs within a reasonable time frame. As a result, the primary objective of this work is to optimize the retrieval system and the representation of data (data model) in the database, addressing these efficiency issues. The initial optimization implemented was the replacement of the PostgreSQL database with Neo4j. Through comprehensive testing and evaluation, it was determined that Neo4j outperformed PostgreSQL in the context of MEMORIA. Following the migration to Neo4j, the relational data model was transformed into a graph structure. This transformation involved redefining the data schema and optimizing its structure to align with the graph database paradigm. To further enhance the integration of Neo4j, the Django Neo4j driver: Neomodel, was extended to support a wide range of syntax and functionality that is compatible with the Django ORM (Object-Relational Mapping). This extension allows developers to leverage familiar Django ORM syntax and techniques when working with the Neo4j database. In the final stage of optimization, the search speed was significantly improved by transitioning from the original relational query approach to a modern full-text search methodology. The full-text search implementation in this project is based on Lucene, a widely-used information retrieval library, and Neo4j. The key enhancement in this optimization was the implementation of intra-query parallelization, which significantly reduced full-text search latency by approximately 45%.
Lifelogging é o comportamento de recolher continuamente vários aspectos do dia à dia usando dispositivos digitais como câmeras, sensores e tecnologia vestível. Envolve a captura de dados sobre atividades diárias, experiências e métricas pessoais, como localização, frequência cardíaca, padrões de sono e entre outros. O Lifelog Search Challenge (LSC) é uma competição internacional focada em resolver problemas relacionados à recuperação de momentos de vida (lifelogs). O sistema MEMORIA foi desenvolvido especificamente para enfrentar o desafio de recuperação eficiente e efetiva de momentos de vida e tem o objetivo de participar no Lifelog Search Challenge (LSC) 2023. No entanto, o sistema de recuperação enfrentou desafios de eficiência, resultando em desempenho abaixo do ideal para atender às necessidades de recuperação dos utilizadores dentro de um prazo razoável. Como resultado, o objetivo principal desta dissertação é otimizar o sistema de recuperação e a representação de dados (modelo de dados) na base de dados, abordando esses problemas de eficiência. A otimização inicial implementada foi a substituição da base de dados PostgreSQL pela Neo4j. Atrávez de testes e avaliações abrangentes, verificou-se que o Neo4j apresentava melhor desempenho do que o PostgreSQL no contexto do MEMORIA. Após a migração para o Neo4j, o modelo de dados relacional foi transformado numa estrutura de grafo. Essa transformação envolveu a redefinição do esquema de dados e a otimização de sua estrutura para se alinhar ao paradigma da base de dados oriendado a grafos.Para melhorar a integração do Neo4j com o MEMORIA, o driver para Neo4j - Neomodel - foi estendido para oferecer suporte a uma ampla variedade de sintaxe e funcionalidades compatíveis com o ORM (Object-Relational Mapping) do Django. Essa extensão permite que os desenvolvedores aproveitem a sintaxe e as técnicas familiares do ORM do Django ao trabalhar com o Neo4j. Na etapa final de otimização, a velocidade de pesquisa foi significativamente otimizada ao fazer a transição da abordagem original de pesquisa relacional para full-text search. A implementação de full-text search neste projeto é baseada no Lucene, uma biblioteca amplamente utilizada para recuperação de informações, e no Neo4j. A otimização principal foi a implementação de paralelização intra-query, o que reduziu significativamente a latência de full-text search em aproximadamente 45%.
URI: http://hdl.handle.net/10773/40562
Appears in Collections:UA - Dissertações de mestrado
DETI - Dissertações de mestrado

Files in This Item:
File Description SizeFormat 
Documento_Wei_Ye.pdf2.37 MBAdobe PDFView/Open


FacebookTwitterLinkedIn
Formato BibTex MendeleyEndnote Degois 

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.