[ Onaj Koji Jeste @ 28.06.2006. 00:11 ] @
Ćao!!


Pokušavam da napravim pretraživač u javi, ništa ekstra, ali imam par problemčića...

Ideja je sledeća:
Program bi za zadatu sistemsku putanju (npr "C:") prelistao sve folder-e i file-ove koji se nalaze u zadatoj putanji, pri tome
bi svaku riječ iz imena file-a izvadio i pospremio kao ključnu riječ, npr.: za ime file-a "Thinking in Java.pdf", ključne riječi bi bile Thinking, in, Java, pdf. Kada bih te ključne riječi pospremao u neku tabelu u bazi podataka, npr.: MySql ne bi bilo nikakvih problema, ja bih poslao upit, sa nekim parametrom, sistemu za upravljanje bazom podataka koji bi mi vratio sve n-torke iz tabele koje zadovoljavaju taj parametar.
Caka je što ja neću da koristim bazu podataka nego bih te ključne riječi zajedno sa putanjom do file-a čuvao, recimo, u nekom xml-u, ili običnoj datoteci...

Problem je kako vršiti učitavanje iz tog xml-a odnosno datoteke?
Da li učitati sve te podatke (koji lako mogu narasti do par stotina hiljada) u neke HashMap-e, liste, ili šta već, i sve to držati u radnoj memoriji dok program radi, ili za svaki upit prolaziti kroz datoteku i u njoj tražiti odgovarajuće podatke, te samo njih
iščitavati?

Za bilo koji predlog, unapred hvala...




P.S.
Imam sam instaliran Google Desktop Search, ali on nema neke stvari koje bih ja stavio...


[ anon315 @ 28.06.2006. 00:47 ] @
Mozda ce te ova tema: http://www.elitesecurity.org/t...ukture-cuvanje-bazice-memoriji ipak ubediti da koristis bazu ;)

Ako ne, napravi neko indexiranje, recimo prvo slovo reci itd.

[Ovu poruku je menjao Vanja Petreski dana 28.06.2006. u 13:45 GMT+1]
[ milas @ 28.06.2006. 09:40 ] @
Mozda bi mogao pogledati i novi Lucene 2.0, koji se cesto koristi za pretragu, indeksiranje po kljucnim recima i ostalo. http://lucene.apache.org/java/docs/index.html
[ Java Beograd @ 28.06.2006. 16:29 ] @
Ima tu mnogo rešenja, ali nemoj da smetneš sa uma sledeću računicu:

100.000 imena puta 20 bajta = 2 mega
ili jos više, tj drastično:
300.000 imena puta 50 bajta = 15 mega

A onaj pišljivi yahoo messenger čim se podigne usrče 25 mega, ni luk jeo ni mirisao ! Dakle, moj savet: hash je majka !

[ Onaj Koji Jeste @ 30.06.2006. 01:40 ] @
Hvala vam svima na korisnim informacijama.

Skinuo sam Lucene 2.0 i čini mi se kao ekstra stvar, čitao sam dokumentaciju, gledao source, ali nije mi se dalo da čitav kod
kontam i da prepravljam neke dijelove da bih ih iskoristio za ono što meni treba...
U međuvremenu sam slučajno nabasao na Boyer - Moore algoritam za pronalaženje zadatih (string) parametara
unutra nekog teksta. Iznenadio sam se kako je taj algoritam brz, a princip rada algoritma je relativno lagan za skontati...
Pala mi je na pamet ideja da ključne riječi čuvam u jednoj datoteci, a putanje do file-ova u drugom (jedna putanja - jedan
red u datoteci).
Pomenuti algoritam bih koristio za pretragu u datoteci koja sadrži ključne riječi. Nakon pronalaska ključne riječi
"nekako" bih odredio red na koji se ta ključna riječ odnosi u datoteci sa putanjama i samo taj red isčitao, i prikazao ga.
Samo još nisam skontao kako implementirati ono "nekako", i da li je to uopšte moguće....