"Ne mogu da nađem ono što mi treba."
To je bio najčešći feedback iz 700 anketa. Katalog sa 40.000 dokumenata, a korisnici ne mogu da pronađu ono što traže.
Problem nije bio nedostatak sadržaja. Problem je bila pretraga.
Dva tipa pretrage, dva tipa korisnika
Korisnik A: "seminarski rad o inflaciji"
Zna otprilike šta traži. Fleksibilan je oko tačnog match-a. Želi relevantne rezultate, ne exact match.
Korisnik B: "Ekonomski fakultet Beograd, Makroekonomija, 2023"
Zna TAČNO šta traži. Želi filter po instituciji, kategoriji, godini. Exact match.
Jedan tip pretrage ne može da zadovolji oba.
Rešenje: Hibridna pretraga
Dva moda, vidljiva u UI-ju:
"Pametna pretraga" (AI semantička)
Cloudflare AutoRAG. Vectorized search. Razume NAMERU, ne samo ključne reči.
"inflacija u srbiji" pronalazi dokumente koji govore o "rastu cena" i "monetarnoj politici" — čak i ako nikada ne koriste reč "inflacija."
"Precizna pretraga" (WP_Query)
WordPress native. Meta queries. Tax queries. Filter by institution, category, year.
"Ekonomski fakultet Beograd" pronalazi SAMO dokumente tagované sa tom institucijom. Nema fuzzy matching. Exact.
Korisnik bira. UI jasno pokazuje razliku.
AutoRAG: Kako radi
Data pipeline:
- Upload — Dokument prolazi kroz AI klasifikaciju
- Markdown extraction — PDF → clean markdown
- R2 upload — Markdown ide na
studenti-ragbucket - AutoRAG sync — Svakih 6 sati, Cloudflare indexira novi sadržaj
Query flow:
- Korisnik unese query
- Frontend šalje na Cloudflare Worker
- Worker koristi AutoRAG API
- AutoRAG vraća rankirane rezultate
- Frontend prikazuje sa relevance scores
Prednost: Cloudflare edge = brzo globalno. Nema potrebe za sopstvenom infrastrukturom za vector search.
WP_Query: Zašto je i dalje potreban
AutoRAG je pametan. Ali ima ograničenje: ne zna za WordPress taksonomije.
Ne možete reći AutoRAG-u: "pronađi sve dokumente sa Ekonomskog fakulteta u kategoriji Makroekonomija."
AutoRAG vidi tekst. Ne vidi WordPress metadata.
WP_Query vidi sve:
- Kategorije (77 akademskih predmeta)
- Institucije (797 termova)
- Tagove (52.098)
- Custom fields
Za precizne filtere, WP_Query je nezamenjiv.
Izazovi srpskog jezika
Srpski ima komplikacije koje engleski nema:
Latinica vs. Ćirilica
"ekonomija" = "економија"
Isti dokument može biti napisan na oba pisma. Pretraga mora da razume oba.
Dijakritici
"šuma" ≠ "suma"
"čovek" ≠ "covek"
Korisnici ponekad ne koriste dijakritike (na telefonu je lakše). Pretraga mora da bude tolerantna.
Regionalne varijacije
"Fakultet" (Srbija) = "Fakultet" (Hrvatska) = "Fakultet" (Bosna)
Ali: "Sveučilište" (Hrvatska) ≠ "Univerzitet" (Srbija)
Sinonimi, varijante, različiti izrazi za iste koncepte.
Implementacija: Normalizacija
Pre pretrage, query se normalizuje:
// Pseudo-kod
$query = strtolower($query);
$query = transliterate_cyrillic_to_latin($query);
$query = remove_diacritics_for_fuzzy($query);
// Ali čuvamo original za exact match
AutoRAG dobija normalizovan query. WP_Query radi sa oba (original + normalizovan).
UI: Jasna distinkcija
Korisnik vidi dva taba:
"Pametna pretraga"
- Opis: "AI razume šta tražiš"
- Best for: Neodređeni upiti, istraživanje
- Prikazuje: Relevance score
"Precizna pretraga"
- Opis: "Filtriraj po instituciji, kategoriji"
- Best for: Tačni kriterijumi
- Prikazuje: Filteri (dropdowns)
Nema magije. Korisnik zna šta dobija.
Rezultati u praksi
Pre hibridne pretrage: "Ne mogu da nađem" feedback.
Posle: TBD. PostHog će pokazati.
Ali anecdotal: Testiranje sa kolegama pokazuje da kombinacija pokriva većinu use case-ova.
AI pretraga za "imam ideju šta tražim."
Precizna pretraga za "znam tačno šta tražim."
Šta nedostaje (za v2)
Autocomplete
Dok korisnik kuca, predloži termine. Trenutno: nema. Plan: dodati.
Search analytics
Šta korisnici traže? Šta ne nalaze? PostHog events postoje, ali dashboard treba.
Personalizacija
Korisnik prati instituciju X. Da li rezultati sa X treba da budu rangirani više? Verovatno. Nije implementirano.
Feedback loop
"Da li je ovo bilo korisno?" Click-through rate. Nema trenutno. Plan: dodati.
Hibridna pretraga nije komplikacija. To je priznanje da različiti korisnici imaju različite potrebe.
AI semantička pretraga razume nameru. WP_Query daje preciznost. Kombinacija pokriva većinu scenarija.
Ključ je jasna UI komunikacija. Korisnik mora da zna šta bira i šta može da očekuje.