SELECT name, org_id, address_id
FROM organization
WHERE org_active='Y' AND MATCH(name) AGAINST('CP&Y*' IN BOOLEAN MODE)
mi ne daje nikakve rezultate iako organizacija CP&Y stvarno postoji (puno ime: CP&Y, Inc.)
Mislim da mi “&” kao dio keyword-a pravi probleme.
U stvari, izgleda da isam u pravu.
Za potrebe testiranja, kreirao sam org "Comp&Me"
Kada pretrazujem “Comp”, org “Comp&Me” ce biti prikazana na listi organizacija.
Kada pretrazujem “Comp&” opet ce biti izlistana ali i organizacija “Construction Company”.
Onda sam promijenio ime test org u “Com&Me”.
Pretrazujuci “Com”, test org NIJE islistana ali su sve druge koje sadrze “Com”.
Pretrazujuci “Com&” - bez rezultata uopste.
Prvo da prijavim gresku: moj test org “Com&Me” su u stvari rijeci iz “zabranjene liste”, com i me. Tako da je moj test odmah “osudjen na propast”
Sad cu da pokusam sa drugim primjerom, pa se javim.
Ako bas moras koristiti full text search gdje postoje & znakovi, mozda da to zamjenis sa where field like ‘%text%’. Internet kaze da je sporije ali radi.
Ne odgovara jer moram da pretrazujem pocetak svake rijeci. Npr. trazim “Online” i dobijem rezultat “Free Online Store”. Ali cu dobit isti rezultat i ako trazim pomocu WHERE %line% - sto mi ne treba. A ako trazim sa WHERE ‘line%’ opet necu dobit korektan rezultat.
Ne odgovara jer moram da pretrazujem pocetak svake rijeci. Npr. trazim “Online” i dobijem rezultat “Free Online Store”. Ali cu dobit isti rezultat i ako trazim pomocu WHERE %line% - sto mi ne treba. A ako trazim sa WHERE ‘line%’ opet necu dobit korektan rezultat.
:([/quote]
where like ‘text%’ or like ‘%text’ or like ‘%text%’
Znam da je neoptimizirani nered. Ili da napravis parser koji ce pri spasavanju i citanju ‘&’ znak zamjenjivati sa nekim rezerviranim znakom. Npr. zamijeniti ga sa [amp] ili \amp, kao sto je bbcode namjenjen.
[quote=afan]A ako trazim sa WHERE ‘line%’ opet necu dobit korektan rezultat.
:([/quote]
Ne kontam ovo. Šta očekuješ da ćeš dobiti ovim upitom pa ti rezultat nije korektan?