postgres-hybrid-text-search
Połącz wyszukiwanie słów kluczowych z semantycznym – znajdź dokładnie to, czego szukasz
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność hybrydowego wyszukiwania w PostgreSQL, która łączy BM25 (wyszukiwanie słów kluczowych) z wyszukiwaniem semantycznym (embeddingi wektorowe). Używa Reciprocal Rank Fusion (RRF) do scalenia wyników z obu metod w jedną rankingową listę. Obsługuje konfigurację indeksów pg_textsearch, równoległe wzorce zapytań, fuzję RRF po stronie klienta (Python/TypeScript) oraz strategie ważenia. Idealna, gdy zapytania zawierają zarówno konkretne terminy (nazwy produktów, kody) jak i intencje koncepcyjne.
Jak używać
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.
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.
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.
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.
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.
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.