2009. november 12., csütörtök

A kereső...



A program egy kényes kérdése a kereső.

Több mezőbe várunk külömböző keresési feltételeket:

  • Magyar cím
  • Eredeti cím
  • Szereplő(k)
  • műfaj(ok)
  • dvd szám
  • feliratos-e a film.
A feladat egyszerű: egy equals felüldefiniálás a Movie osztályban, aztán egy foreach ami bejárja a filmlistát és egy új listát állít elő a feltételeknek megfelelő filmekkel feltöltve.
Igen ám, de a problémát az okozza ha nem emlékszünk egy szereplő teljes nevére, vagy kihagyunk egy szót a címből (Pl: "A bárányok hallgatnak"-ra rákeresfünk "Bárányok hallgatnak"-kal).
Erre azt a megoldást találtam hogy szavakra bontom a keresési feltételeket és minden szót minden szóval hasonlítok össze. Így valamivel felhasználóbarátabb kereső jött létre, ami valószínűleg lassabb is, pár napon belül egy nagyobb adatbázison is ki szeretném próbálni hogy elfogadható sebességgel dolgozik-e a kereső (erről be fogok számolni).
A végeredmény egy ~100 soros equals (a segédmetódusával együtt), és egy Searcher osztály amiben a searchInDatabase statikus metódus a megkapott filmlistából kiválogatja a megkapott Movie objektumnak (ami a keresett adatokat tartalmazza) megfelelő filmek listáját adja vissza.

A kódot mellékelem:

Nincsenek megjegyzések:

Megjegyzés küldése