…nic
Jeszcze raz, 5ty, 10ty… nic… ?
Po chwili poszukiwań okazało się, że aktualizacja systemu odinstalowała VS Code, a wraz z nim wszelkie zainstalowane dodatki. 🤦♂️
Nie tego oczekiwałem mając 1,5h na wieczorną naukę… 😂
Ale cóż… całe szczęście wystarczyło pobrać szybko i zainstalować program po czym wszystko ruszyło jak zawsze.
No dobra, ale przecież ja nie o tym…
Aplikacja client-server rośnie. Na tym etapie chcemy przeszukiwać wysłane wiadomości, a zwykłe LIKE '%tekst%’ jest nieefektywne.
Przyszedł czas na Full Text Search. 🔍
🎯 Wyzwanie:
Zadaniem była implementacja FTS (Full Text Search) do przeszukiwania wiadomości użytkowników. A dokładnie:
📌 Zrozumienie działania FTS na podstawie dokumentacji
📌 Implementacja FTS w moim Postgres Handler
📌 Szybka alternatywa w SQLite Handler (nie chcę, żeby jedna baza działała, a druga nie)
📌 Dostosowanie całego kodu, żeby wszystko grało bezproblemowo
🛣️ Droga:
Zamiast przedzierać się przez kilka obszernych artykułów (często wyolbrzymionych na to, co potrzebuję), spróbowałem czegoś innego.
Wrzuciłem kilka źródeł do NotebookLM i poprosiłem o skondensowanie wiedzy w krótki poradnik dla osoby, która z FTS jeszcze nie korzystała.
I… WOW.
Zamiast ponad godziny czytania i szukania miałem jeden zwięzły „poradnik” do przeczytania w 15 minut. Gdy czegoś nie rozumiałem – pytanie, odpowiedź prosto w sedno.
Ale implementacja to nie tylko teoria… 😅
Główny problem? FTS w PostgreSQL i SQLite to dwa różne światy. PostgreSQL ma wbudowane tsvector i tsquery, SQLite wymaga osobnego modułu FTS5. Tutaj poszedłem na łatwizne i zastosowałem w SQLite zwykły LIKE, bo focus był na zrozumieniu FTS w produkcyjnej bazie.
Największym wyzwaniem jednak okazał się powrót do kodu po 2-3 miesiącach przerwy, bo w międzyczasie pisałem inny projekt. 😅 Ale tym razem i tak naprawdę gładko poszło!
✅ Wynik:
Po dwóch wieczornych sesjach kodowania:
🎯 FTS działa w PostgreSQL
🎯 SQLite również przeszukuje wiadomości
🎯 System gotowy na przeszukiwanie setek wiadomości w mikrosekundach
🎯 Kod modułowy – każda baza ma swojego handlera
Co najważniejsze – zrozumiałem w praktyce, jak działa full-text search. To fundament pod to, co przyjdzie dalej: ElasticSearch w tym projekcie, a potem… zobaczymy. 💪
Kolejne wyzwanie już czeka! 😉
Link do repo: https://gitlab.com/DawDro/FirstClientServerApp
A Wy macie sprawdzone narzędzia do „trawienia” dokumentacji? Podzielcie się! 👇
