- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- Tecniche di compressione per un motore di ricerca
-
non si usa un solo pc ma un cluster.
non esistono dischi fisici ma virtuali hot swap su storage network (SAN e NAS), hanno dei server LIBRARY che viaggiano in fibra ottica e di solito si usa un sistema di compressione ad-hoc secondo un principio matematico che ora non ricordo.
-
@Stealth said:
non si usa un solo pc ma un cluster.
non esistono dischi fisici ma virtuali hot swap su storage network (SAN e NAS), hanno dei server LIBRARY che viaggiano in fibra ottica e di solito si usa un sistema di compressione ad-hoc secondo un principio matematico che ora non ricordo.
credo che Umor in questo momento non possa far altro che comprimere i dati e leggere i link proposti da Stuarteè vero che MySql non è il massimo per questa mole di dati ma dove trovi oggi un bel Oracle a prezzi ragionevoli ?
p.s.:Umor allora sei tu che stai attaccato al mio sito () linguaggio utilizzato ?
-
Sul fatto che usassero i cluster ok, però sai Google ha un pò più di fondi
Mi interessa sapere la loro architettura per prendere spunto, per cercare soluzioni a basso costo visto che non posso permettermi stanze da x server.
Anche per MySql, so bene che non è proprio adatto però.. è free!
Ma ad essere sincero tunandolo bene con tanta ram va che è una scheggia (almeno per ora).Per un comune mortale comprare sistemi di storage in fibra ottica o cose di questo tipo sono un suicidio, tanto quanto comprare 50pc farci un cluster e pagare la bolletta della corrente, figurati poi le bestemmie se salta la luce..
linguaggio utilizzato ?
Premettendo che lo spider non sta attaccato a nessun sito, massimo prendo 2-3 pagine a dominio, ho fatto tutto in c e perl.Riguardo all'architettura avevo idea di come fosse impostata però non avete risposto ad una domanda:
Salvano l'html intero zippato oppure soltanto il testo dopo aver parsato la pagina?
e aggiungo: sostituiscono le parole con numeri per risparmiare spazio?ma non hai usato più database per informazioni diverse? Quando hai pensato a spiderizzare tutto, come mai non hai diviso in "sezioni" il codice? Troppo lento poi ad estrapolare i dati?
Si ho più database, questo che ho citato è soltanto quello relativo al salvataggio delle pagine web, poi tutti i vari calcoli li faccio altrove.
Quando cominci ad affrontare un problema non ti rendi bene conta di cosa hai di fronte, almeno nel caso del web. Ho dovuto ricostruire la struttura del db almeno 5 volte perchè più spiderizzavo più trovavo bachi o cose da migliorare, attualmente il codice non è diviso e l'unica distinzione che faccio poi è title e resto del documento.
Per quanto riguarda l'estrapolazione dei dati, con qualche gb di ram e dei dischi veloci sinceramente non ho nulla da invidiare a macchine più costose ma mal sfruttate.. anche se il db pesa molto va che è una scheggia!
-
Una nota sulla compressione:
ho letto l'articolo postato da Stuart ed è quello che sto utilizzando io, le zlib. Io chiedevo se esistono altri sistemi che occupino poca cpu ma che comprimano maggiormente. Sostanzialmente io ho usato il metodo che utilizzava G agli inizi, non so poi se sia cambiato..
-
uMoR sicuramente se indicizzi il tutto senza l'html ma solo il testo risparmi un sacco di spazio, però questa è una considerazione che devi fare tu in base al tuo Ranker.
Mi spiego meglio, togliendo tutti i tag non sai nemmeno quali sono link e quali no, amenoche tu non faccia una cosa del tipo:Prendi la pagina
la analizzi e prendi quello che ti serve
La salvi senza TAG, ma a questo punto a cosa ti serve salvarla?Ovviamente quando a google chiedi la cache lui ti restituisce la pagina completa, ma io non tenterei di paragonarmi a google perchè purtroppo le idee un pò tutti ce le abbiamo, ma i soldi??? Quello è il problema !!
L' HW costa!!CMQ per la tua richiesta, hai mai provato a comparare le zlib che attualmente usi con le bzip?
Prova magari e facci sapere!!
-
dimenticavo, hai dato uno sguardo sempre per prendere spunto dal progetto UIMA dell'IBM:
http://www.alphaworks.ibm.com/tech/uima
Unstructured information management (UIM) applications are software systems that analyze unstructured information (text, audio, video, images, etc.) to discover, organize, and deliver relevant knowledge to the user. In analyzing unstructured information, UIM applications make use of a variety of analysis technologies, including statistical and rule-based Natural Language Processing (NLP), Information Retrieval (IR), machine learning, and ontologies.
-
Ci darò un occhio. Comunque io non utilizzo i tag html per calcolare il ranking, faccio altri tipi di considerazioni.. quindi in teoria l'html non mi serve però se qualcuno mi chiede la copia cache che gli faccio vedere ??
-
@uMoR said:
Premettendo che lo spider non sta attaccato a nessun sito, massimo prendo 2-3 pagine a dominio
Che user-agent usa il tuo spider?quindi in teoria l'html non mi serve però se qualcuno mi chiede la copia cache che gli faccio vedere ??
Gli fai vedere la pagina originale in un iframe e fai finta che sia una copia cache.
-
Everfluxx: bell'idea quella dell'iframe
Il mio spider usa lo user agent di ie..
-
@uMoR said:
Il mio spider usa lo user agent di ie..
()
-
rinzi almeno un cluster lo devi avere, non ti dico la San ma almeno un doppio sistema.
inoltre ti consiglio di usare un cluster di mysql, molto più fattibile....cerca in rete e trovarai varie info.
-
Secondo te non le ho provate ste cose?
Fidati che non conviene..A quel punto conviene usare i ramdisk, perchè la struttura a cluster di MySql non è chissachè, ma qui parliamo di cose tecniche che non rientrano nel titolo del thread.
Io chiedevo solo metodi di compressione, non come impostare la mia potenza di calcolo.
-
Io non ho chiaro che cosa va compresso.
Va compresso un indice o va compresso del testo?
Nel caso in cui si trattasse di un indice, che tipo di informazioni contiene, che struttura ha?
Non esiste un algoritmo di compressione ottimale per tutte le occasioni. Dati diversi e formati diversi richiedono algoritmi di compressione diversi.
-
Già dacci qualche dettaglio tecnico in più per capire meglio che tipo di compressione usare.
(Che bugiardo che sono la realtà è che sono curioso e vorrei apprendere queste cose come funzionano!!!)
-
Io sto chiedendo come comprimere le pagine html che spiderizzo. Attualmente con le zlib comprime in maniera veloce e abbastanza efficace, ma il db si fa grosso..
-
@uMoR said:
Io sto chiedendo come comprimere le pagine html che spiderizzo. Attualmente con le zlib comprime in maniera veloce e abbastanza efficace, ma il db si fa grosso..
Questo sito è un buon inizio: compara le prestazioni di diversi software/algoritmi di compressione: http://www.maximumcompression.com/
Tuttavia, come ti dicevo, le prestazioni variano molto a seconda di cosa bisogna comprimere. Le pagine HTML sono un orrendo mix di struttura e contenuto. Già separando infile diversi la struttura (tag HTML) ed il contenuti (testi), otterresti a mio parere risultati migliori. Sopratutto perché potresti usare algoritmi di compressione diversi per informazioni diverse.
-
Un buon sistema potrebbe essere usare sql2005 standard e salvare in modalità read only il db storico su una partizione ntfs compressa.
Se ti procuri sql ti "metti comodo" e risolvi il problema per i futuri sviluppi del tuo lavoro.
Inoltre se il tutto diventa mastodondico con sql standard puoi salire di cpu e via dicendo.
Cerca su ebay, spesso pacchetti originali da 5k dollari li trovi ad un centesimo del prezzo... misteri di internet!
-
Ho usato linux per convenienza visto che ho programmato tutto sotto questo os e fare il porting mi tira il culo
Faccio qualche prova poi vediamo
-
uMoR, prima di salvare il testo converto le parole piu' comuni con un numero preceduto dal pipe. Esempio, email = |1 e via dicendo.
Poi dopo comprimi come preferisci, ma stop e poison word se le converti a monte non ti sbagli.
Se poi fai anche il porting da mysql a sql vedrai che non te ne penti, personalmente sono per il code free, ma sql microsoft e' e rimarra' sempre sql.
Ci sono poche cose per un seo che vale veramente la pena comprare, ne cito 3: sql, search and replace della funduc, photoshop e xenu perche' e' gratis.
Uso linux+apache da sempre, ma quando si deve lavorare sul serio passo a solaris o wow 64 e simili.
Tu che sei appassionato sai meglio di me che anche nei rally ci sono le classifiche per categoria.
Nel nostro lavoro e' lo stesso, devi decidere prima in che categoria competere.
-
Secondo me l'approccio è da cambiare radicalmente
Occorre prendere una pagina, "leggerla" e inserire ogni parola in un "dizionario" a cui va collegato un indice principale. Poi quando salvi la pagina appena "letta" sostituisci tutte le parole con i rispettivi indici (così hai compressione massima).
Tra l'altro quando vai a cercare quanti siti incorpornano la parola devi solo cercare un numero e non un alfanumerico.
Quando poi vorrai valorizzare le diverse parole per dargli significato "singolare, plurale, ecc ecc" avrai un secondo indice così che se qualcuno cerna "cane pastore" potrai presentargli anche "cani pastore" e tutte le varianti.
Questa è la via giusta per indicizzare qualcosa, ma esistono diversi motori di indicizzazione free su sourceforge già pronti con il sorgente da guardare/modificare.