Poznati problemi

Problemi u pretrazi po "našim slovima"

Detektirali smo jedan zanimljiv problem koji je povezan sa SQLITE malom bazom podataka koja se nalazi u mobilnim uređajima, a koju koristimo u "mWIP" aplikaciji kako bi u nju spremili primljene podatke s WIPAPI servera. Takav pristup lokalnog spremanja podataka nam omogućuje da nam telefon ne mora stalno biti spojen na Internet, i imati stalni pristup WIPAPI sustavu, nego podatke primi prilikom Sinkronizacije, spremi ih svoju lokalnu bazu podataka, i daljnju pretragu i izbore tih podataka koristi iz lokalne SQLITE baze podataka.

Problem je sljedeći : zamislimo da imamo proizvod s "nazivom proizvoda" "PIVO OŽUJSKO 0,5 L" (sve je pisano velikim slovima). Ako potražimo ovaj proizvod po nazivu, tražeći ovako : "piv ožuj" ... ovaj gore proizvod NEĆE BITI PRONAĐEN!!!

Jednostavno rečeno, problem je u tome što baza "SQLITE" ne podržava Hrvatske dvobajtne znakove. Odnosno ona ne može pronaći veliko slovo "Ž" pa bi zato velika "domaća" slova trebalo izbjegavati u pretrazi!

Rješenje za ovaj slučaj je potražiti ovako : "piv ujsk", čime smo izbjegli veliko slovo "Ž".

"Problemi" sa "zarezom" ili "točkom"

Sljedeći problem nije u stvari problem, nego "ponašanje". Pretragu smo htjeli napraviti "inteligentnom", pa smo željeli da ono što upišemo u pretragu, automatski odredi i po kojem polju iz svih podataka će se pretraga obaviti. Evo primjera : Zamislimo da imamo proizvod s nazivom "PIVO OŽUJSKO 0,5 L". Ako u polje za pretragu upišemo "piv", "mWIP" će odvojiti sve proizvode koji u svom nazivu imaju komadić traženoga niza "piv", pa će tako uredno odvojiti i ovo pivo iz našeg primjera.

Sada slijedi "problem", odnosno "ponašanje" :D .... ako u polje za pretragu upišemo "piv 0,5", program neće pronaći pivo iz našeg primjera, jer će tražiti sve proizvode koji u svom nazivu imaju niz "piv", ali i kojima je cijena "0,5€"! Budući da ovoj pivi cijena nije pola €ura, taj proizvod neće biti pronađen i ponuđen u listi, pa Vam to može biti malo zbunjujuće.

Dakle, program ako u jednom nizu zadanih znakova pronađe točku ili zarez, taj će zadani niz potražiti u polju cijene, a ne u polju naziva proizvoda.

Rješenje : rješenje je jednostavno, možemo potražiti "piv 5" (izbjegavajući dakle zarez) pa će program izdvojiti sve proizvode koj bilo gdje u nazivu imaju riječ "piv" i riječ "5", a budući da proizvod iz našeg primjera zadovoljava oba uvjeta, biti će uredno pronađen i ponuđen u listi pronađenih proizvoda.