Gyerekek, fölösleges feltalálni a melegvizet. Ezek mind open source projektek, némelyiknek még a doksija is elég jó. A licensz többnyire GNU GPL, a Lucene esetében Apache licensz. Tessék elolvasni mindent, amit lehet, a forráskódot is. Tessék installálni öket és tesztelni. A Debian unstable (aka sid) diszrtibúcióban mindegyik benne van.
Új projektet csak akkor inditsatok, ha mindezek után is nagyon alaposan meg tudjátok indokolni, hogy arra miért van szükség. De még ebben az esetben is érdemes a már elvégzett munkára támaszkodni - A GPL lehetövé teszi, hogy a már futó projektekböl tetszöleges library-kat, kódrészleteket átemeljetek. Mindenképp érdemes használni mások nehéz munkával megszerzett tapasztalatait. Ha viszont nincs alapos ok új projekt inditására, akkor kapcsolódjatok be egy meglevöbe. Ennyi.
Azota csinaltam egy crawlert, de az igazi problema nem ez, hanem az indexeles es a lekerdezes. Standard dolgok: hanyadik egy adott szo az oldalon, milyen a formatuma a tobbi szoveghez kepest, mi van a cimben, az oldalra mutato linkek szovegeiben. Szep lassan elkezd kifutni a leves...
Tényleg szép feladat, amire vállalkoznátok. De hogy a google-t lenyomni?
A hvg-ben volt egy cikk a google-rôl: 10.000 gépük pásztázza folyamatosan a netet.
És a szokásos adatokon túl (kulcsszavak, title, szerepel-e címben a szó stb.) azt is figyeli, hogy egy-egy oldalra hány link mutat. Ha sokan hivatkoznak egy oldalra, az a listán elôbbre kerül.
"Spiderel a hatterben, mert azt gondolom a spidereles ami a legproblemasabb a dologban"
A rendszer kialakitasa szempontjabol az indexeles a legproblemasabb az egeszben, szerintem (vagyis, a beolvasott oldalak sorbaszedegetese, hogy melyik oldal melyik kulcsszora mennyit er).
Tehat, ha PC-ken lenne a spider, akkor egy-egy gep fel az spiderelt oldalakat fel is indexelne, legalabb kulcsszavak szerint, majd bekuldene es a kozpont a szerveren osszerakosgatna a sok-sok eredmenyt es kialakulna az adatbazis, amit egy adott weboldalrol ill. szerverrol lehetne lekerdezni. Igy valahogy?
De egy "igazi" keresorendszer vszinuleg egyebkent is sok spidert hasznal egyszerre, nem?
Egy elosztott kereso eseteben az egyes gepeknek mit kellene csinalniuk? Pl. egy konkret kulcsszora keresni? Es akkor minden gep mas-mas kulcsszot keres, illetve indexel fel? Vagy mas modon dolgozzon?
Spiderel a hatterben, mert azt gondolom a spidereles ami a legproblemasabb a dologban:
Ha te hostolod a spidert, egeszen hamar tudja minden profi, h milyen tartomanybol jon, ergo
olyan oldalt kapsz vissza, amirol tudja h adott keywordre elso leszen.
Kerdes persze a kereso celja is:
Mit szeretnel ? Valaszt mindenre ?
Vagy azt h a gyakran feltett kerdesek hamar valaszt kapjanak ?
Hany talalatot nez meg egy felhasznalo ?
IMHO max 30at.
Kene vmi link popularity kezeles, s az ujonnan bespiderelt oldalaknak kapasbol a maximumot adni,
aztan hamar kiderul h erdemes-e ra.
Asszem egeszen bonyolult es erdekes feladat lenne:)
Kicsit jobban meg tudnatok vilagitani hogy ez hogy mukodne? Marmint, lattam a seti@home-ot es mar lattam a napstert is. Ahogy nezem ez a projekt inkabb a napsterhez hasonlo. De hogy? Pliz vilagositsatok fel!
Frissitettem a jelenlegi linkbogaraszo-programomat. www.otthon.net/search, es nem kell hozza most mar url-t sem beirni. A parameteres linkeket nem kezeli jol mert azokra nem gondoltam... De az csak a parameterkezelesem hibaja.
A php/perl/mysql megoldast azert javasoltam mert kb. 15-20 dollar per honap osszegert lehet venni 4-500 mega tarhelyet ami ezt tamogatja. Tehat az informatikai hattere kezzelfoghato kozelsegbe kerul (mar amennyi anyag tarolhato 400 megan...).
Amit felvetettel eszembe juttatta azt a kerdest hogy hogy fog kinezni az "internet" akkor amikor mar a Marson is laknak majd emberek. Mars-Fold radiokapcsolat sok perc, ott erdekes technikak fogjak majd biztositani a bongeszest szerintem. Talan hasonlok ahhoz amit javasoltal most.
Ez az elosztott kereses is erdekes lehet, de nem igazan latom hogy hogy valik majd valora? Egy uj seti at home, ahol mindenkinek van egy keves anyag a gepen??
Nade igaz is, ez mindegy, merjunk almodni meg mifene! Mindenesetre az elso lepesek meg elegge kozosek, akar elosztott, akar standalone keresorol kepzelodunk.
tere:
ha egy gep lassu akkor nem kell megvarni tole a valszt, majd megmondja mas. az is elkepzelheto hogy a lassu gep 'kesve' elkuldott valaszat hasznalni lehet, mert megfigyelesem szerint az ember egymasutan tobb hasonlo kerest indit utnak. az 'elkesett' valasz jo lehet esetleg egy kovetkezo, hasonlo kerdesnel.
a mirroring, ha jol ertem azt jelenti hogy gyk. az egesz bazist tobb helyen tartjuk. ez viszont tobb terrabyteot is jelenthet, az elosztott rendszer egyik elonye szerintem eppen az, hogy nem kell ilyen hatalmas meretu tar egyik gepen sem.
a valaszadas sebessege nem kell szupergyors legyen. a hagyomanyos keresokkel a < 30 mp alatt megkapott valaszt > 30 percig bongeszed amig ratalasz arra amit igazabol kerestel (ha ratalasz:) ehez kepest jobb ha 3 perc alatt kapod meg a valaszt ami tenyleg azt tartalmazza amit akarsz.
egyebkent en sem ertek a temahoz :) csak nagyon erdekesnek tunik es fantaziat latok benne.
ap.
na, egy kicsit utananeztem az elosztott(?) keresesnek. sokan foglalkoznak mar a temaval, ime egy link-gyujtemeny:
http://www.openp2p.com/pub/a/p2p/2001/06/06/jxtasearch.html - sun szabadforrasu elosztott kersoje, ez itt egy interju az egyik fejlesztovel
http://www.oasis-europe.org/ - GNU fejlesztes a SourceForge-on
http://www.pointera.com/ - proprietary kereso; eleg jo dolgokat tud allitolag
http://www.cs.bris.ac.uk/~gallardo/PhD_definition.html - diplomamunka a kepek tartalom (!) alapjan valo keresesehez elosztott rendszerrel
http://searchenginewatch.com/ - keresokrol altalaban.
Ja, és mire a magyar netviszonyok segítségével a böngésző gép kérdését átirányítod az éppen nem offline, hasonló 'tudományág' tartalmát keresgélő otthoni gépre, addig a szerencsétlen homepolgár elalszik a gép előtt.
Nem lenne jobb a tükrözés? Sok ponton elérhető, azonos adatbázis. Ha valamelyik besokall, átirányítja a kérdezőt egy másik gépre.
Az adatbázisba kerülő friss adatokat (és emberi frissítéseket) pedig a gépek küldözgetnék egymásnak.
Persze, az elosztott módszer is jó, de az a feltétele, hogy minden megadott témában minél több gép működjön egyszerre. A fentiek szerint pedig, ha a rendszer közel fele kikapcsol, akkor is működőképes a keresés.
Én egyébként annyira nem értek hozzá, csak az elvi oldaláról közelítem a kérdést.
hello !
egy keresomotor valoban izgalmas tema. a felvazolt megoldasod (mySQL, php, stb) eleg konvencionalisnak latszik; nem lehetne valami ujdonsagot kitalalni ?
pl. letezik-e egy elosztott, 1xe sok gepen futo kereso ?
ne legyen kozponti szerver hanem a keresoprogit futtato gepek rendszere.
oldjuk meg hogy olyan gepek is reszt vehessenek amelyek csak neha kapcsolodnak fel es dinamikus ip-vel rendelkeznek.
minden gep 'szabadidejeben' keresgel egy meghatrozott temaban. egy keres eseten a temaban jartas gephez kellene routolni a kerdest.
ugyanabban a temaban tobb gep is keresgeljen hogy meglegyen egy szolid redundancia.
a kerdes ne csak kulcsakszavak alapjan tortenjen hanem legyen egy logikai inference-engine amely kovetkezteteseket kepes levonni es a tartalom 'ertelme' alapjan iranyitja a kerdezot a megfelelo site-ra.
jol jonne egy AI shell a kerdesek termeszetes nyelvu elofeldolgozasahoz.
az inference engine dolgozzon egy olyan tudas-bazison amit esetleg kezzel (is) kell editalni, a resztvevok sajat human intelligenciajukkal segitenenek a tartalom strukturalasaban.
igy felvetve a tema kapcsolodik az AI topichoz es AndrisK adatbazisszemleletu topicjahoz is. el lehetne latni ugyanis a motort egy uj lekerdezesi modszerrel amely nemcsak interaktiv webes feluleten hanem egy gepkozeli protokolon is elerhetove tenne az adatokat. igy egy speci szoftwerrel joval tobb dolgot lehetne kinyerni az adatbazisokbol mint egyszeru 'search' parancsal.
ez a vazlat azt hiszem tulmutat az eredeti felveteseden es sokkal nehezebb is megvalositani de azt hiszem erdemes 'lehetelen' dolgokon gondolkodni.
ap.
A projekt komplex, de mar borzaszto reg ota motoszkal bennem. Azert vetettem fel hogy hatha erdekel mast is es akkor osszejohet egyfajta szellemi muhely, es lenyomjuk a google-t. Mondjuk guggol.hu vagy ilyesmi.
Hogy miert akarok epiteni, azt nem tudom megmondani. Mindig irigyeltem a kereso-oldalakat amiatt hogy azt az iszonyatos mennyisegu adatot olyan szempontok szerint elemzik, ahogy csak akarjak. Talan ezert. Masreszt, talan azert is mert nagy falat.
Tudom. De talan eppen azert erdemes belevagni mert nagyon sok technikat integral.
Masreszt, eloszor talan reszletekre is lehet bontani, vagyis kis lepesekkel indulni el, es akkor mar konnyebb.
Olyasmikre gondolok, mint: a weboldal-adatbazis megfelelo indexelese es gyors lekerdezese; megbizhato 'crawler' eloallitasa es hasonlo reszfeladatok.
Az integralas egy masik lepcso (hogy egy szerveren ejjel-nappal fusson es azt el is lehessen erni), de ha az elso kor mar megvan, sokkal konnyebb nekifutni.
MySQL-ben, Perlben illetve PHP-ban tervezem az egeszet, ezek viszonylag konnyen hozzaferhetok akarmelyik hostnal.