Pamiętacie mój ostatni post o Full Text Search? Nowy sposób na dokumentację – NotebookLM ratujący godziny… oraz implementacja FTS w PostgreSQL.
Tym razem było bardzo podobnie – szybka piłka.
🎯 Wyzwanie:
Kolejny etap projektu client-server – wymiana natywnego FTS w PostgreSQL na Elasticsearch. Dedykowany silnik wyszukiwania, osobny kontener w Docker Compose, indeksowanie wiadomości, reindeksacja bazy…
Brzmi jak sporo roboty?
🛣️ Droga:
Kilka krótkich wieczorów i… gotowe. Bez większych problemów, bez wielogodzinnego debugowania, bez frustracji.
Co się zmieniło? Zrozumienie FTS z poprzedniego etapu. Wiedząc już jak działa wyszukiwanie pełnotekstowe „pod spodem”, Elasticsearch okazał się naturalną ewolucją, a nie skokiem w nieznane. Koncepcje były znajome – zmieniło się tylko narzędzie.
W praktyce:
– EsHandler do indeksowania wiadomości (add, search, reindex)
– Elasticsearch jako kontener w Docker Compose
– Automatyczne indeksowanie nowych wiadomości
– Komenda reindex dla admina do przeładowania całej bazy|
– PostgreSQL dalej jako source of truth, Elastic tylko do wyszukiwania
✅ Wynik:
Działający Elasticsearch zintegrowany z aplikacją. Ale najcenniejsza lekcja jest inna…
Ten projekt ciągnę już od ponad roku (z przerwami). Zaczynał jako prosty konsolowy komunikator, dziś ma Docker, PostgreSQL, system logowania, role użytkowników, a teraz Elasticsearch.
Można zapytać – czemu nie zacznę czegoś nowego?
Bo w realnej pracy rzadko pisze się coś „od zera”. Zazwyczaj wchodzisz do istniejącego projektu i musisz się wpiąć z nową funkcjonalnością. Zrozumieć co już jest, nie zepsuć tego co działa, rozbudować w sposób spójny z resztą. To zupełnie inna umiejętność niż pisanie na czysto.
Każdy nowy stage tego projektu to pretekst do nauki – ale w realistycznych warunkach. I to chyba najlepsza część tej podróży. 💪
Co dalej? Zobaczymy. Pomysłów nie brakuje! 😉
A Wy – wolicie zaczynać projekty od zera, czy rozbudowywać istniejące projekty? Co daje Wam więcej satysfakcji?
#Python #Elasticsearch #Docker #Backend #Programowanie #NaukaProgramowania #Portfolio
