AI semantička pretraga + WordPress: kako smo napravili hibridnu pretragu za 40.000 dokumenata

· 5 min
Sadržaj

"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:

  1. Upload — Dokument prolazi kroz AI klasifikaciju
  2. Markdown extraction — PDF → clean markdown
  3. R2 upload — Markdown ide na studenti-rag bucket
  4. AutoRAG sync — Svakih 6 sati, Cloudflare indexira novi sadržaj

Query flow:

  1. Korisnik unese query
  2. Frontend šalje na Cloudflare Worker
  3. Worker koristi AutoRAG API
  4. AutoRAG vraća rankirane rezultate
  5. 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.