Toolverse
All skills

postgres-hybrid-text-search

by timescale

Use this skill to implement hybrid search combining BM25 keyword search with semantic vector search using Reciprocal Rank Fusion (RRF).\n\n**Trigger when user asks to:**\n- Combine keyword and semantic search\n- Implement hybrid search or multi-modal retrieval\n- Use

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Author
timescale
Category
Backend
Views
11

About this skill

Use this skill to implement hybrid search combining BM25 keyword search with semantic vector search using Reciprocal Rank Fusion (RRF).\n\nTrigger when user asks to:\n- Combine keyword and semantic search\n- Implement hybrid search or multi-modal retrieval\n- Use BM25/pg_textsearch with pgvector together\n- Implement RRF (Reciprocal Rank Fusion) for search\n- Build search that handles both exact terms and meaning\n\n\nKeywords: hybrid search, BM25, pg_textsearch, RRF, reciprocal rank fusion, keyword search, full-text search, reranking, cross-encoder\n\nCovers: pg_textsearch BM25 index setup, parallel query patterns, client-side RRF fusion (Python/TypeScript), weighting strategies, and optional ML reranking.

How to use

  1. Zainstaluj wymagane rozszerzenia PostgreSQL: pg_textsearch (BM25) i pgvector (embeddingi wektorowe). Obie są dostępne jako open-source i wspierane na Tiger Cloud oraz w wdrożeniach samodzielnie zarządzanych. Upewnij się, że używasz PostgreSQL 17 lub 18, ponieważ pg_textsearch obecnie wspiera tylko te wersje.

  2. Skonfiguruj indeks BM25 za pomocą pg_textsearch na kolumnie tekstowej zawierającej treść, którą chcesz przeszukiwać. Równocześnie przygotuj embeddingi wektorowe za pomocą pgvector dla tej samej treści.

  3. Napisz dwa równoległe zapytania: jedno wyszukujące wyniki za pomocą BM25 (słowa kluczowe), drugie za pomocą wyszukiwania semantycznego (wektory). Każde zapytanie powinno zwrócić ranking wyników.

  4. Zaimplementuj Reciprocal Rank Fusion (RRF) po stronie klienta, używając Python lub TypeScript. RRF scala rankingi z obu metod w jedną listę, dając wagę zarówno dopasowaniom słów kluczowych jak i semantycznym.

  5. Dostosuj strategie ważenia, aby kontrolować, jak bardzo wyniki BM25 wpływają na ostateczny ranking w porównaniu z wynikami semantycznymi. Możesz również dodać opcjonalne ML reranking do dalszego ulepszenia kolejności wyników.

  6. Testuj hybrydowe wyszukiwanie na zapytaniach, które łączą konkretne terminy (nazwy produktów, kody) z koncepcyjnym zamiarem, aby upewnić się, że otrzymujesz zarówno dokładne dopasowania jak i semantycznie istotne wyniki.

Related skills