This project compares the following three full-text-search approaches: PostgreSQL Full Text Search, Semantic Search using pgvector and Elasticsearch as the current industry standard. The project composes of a React Frontend and a Microservice Backend using Go as its foundation. Our three search approaches are implemented in a way that they can seemlessly be swapped out. Addtionally, we created a dataset that can be used by following projects.
B2B Trading, Information Retrieval, Large Language Models, Text Embeddings, Microservice Platform
In this project we aim to lay the groundwork for a B2B plattform that leverages different techniques of full-text search to provide its users with the most optimal results. For this, we compare PostgreSQL Full Text Search, Semantic Search and Elastic Search.
With the current rise of international B2B trading relationships, the market has a need for platforms that allow to find either correct produts or partners. There are already platforms that allow their users to either search for companies or products, but their technology stacks are falling behind the current search trends, such as Semantic Search.
We find that Elastic Search and Semantic Search offered the most accurate and scalable search solution, while PostgreSQL struggled with missing results. Users found our search results comparable to existing platforms, especially for natural language queries. To optimize search experience, a hybrid approach combining Elasticsearch and semantic search or the paid version of Elasticsearch is recommended. Additionally, self-hosted embedding models and leveraging Go for microservices proved to be an effective solution.
Project start: Bachelor's Thesis (IP6), Project duration: 26 weeks, Workload: 12 ECTS (360 hours) per person, Team: 2 people
Raphael Lüthy, George Rowlands