• User Newbie

    Voglio contribuire nel darvi alcuni consigli per Teecno

    Salve a tutti e piacere di conoscervi.

    Mi chiamo Rosario Sancetta e sono un programmatore lato client dal 1991 e lato server dal 2001, nonostante ciò ho solo 33 anni.

    Ho provato il progetto di Teeco e anch'io nel mio piccolo (visto che ho costruito un motore di ricerca tutto da solo), volevo darvi dei consigli e spiegarvi quello che ho fatto io in questi mesi.

    Il mio lo trovate a questo indirizzo gooliv.com dopo le 10 di mattina fino alle 8 di sera, questo perchè sfrutta un server proprio che putroppo non posso tenere sempre attivo,quindi lo spengo di notte.

    Ma andiamo a cose più pratiche e vediamo di pari passo cosa ho fatto.

    Passo 1 : Un server mio
    Prima di tutto quindi occorre un server proprio. Questo perchè quando i dati diventano tanti da gestire, diventa costoso utilizzare spazi web su internet, sia essi gratuiti che a pagamento.

    Passo 2 : Motore di ricerca in php
    Ho creato 3 algoritmi.
    1 - Algoritimo pertinente
    2 - Algoritimo di gradimento
    3 - Algoritmo della disperazione 😉

    In pratica quando l'utente fa una ricerca il primo algoritimo cerca solo i risultati pertinenti attraverso un sistema di filtraggio per rendere la ricerca veloce. Perchè il PHP quando deve gestire molti dati inizia a diventare molto lento (Molti parliamo di 500.000 pagine a salire)

    Se non trova nulla passa ad un algoritimo di gradimento, un pò più lento, ma che tutto sommato in linea di massima si tiene sui valori di pertinenza.

    Se anche questo algoritmo fallisce, passa all'algoritimo della disperazione,ovvero a quell'algoritmo che in un modo o nell'altro, qualcosa fuori la deve portare, anche se il tempo diventa troppo eccessivo perchè non c'è filtraggio e i risultati in linea di massima sono a casaccio.

    Da quello che ho visto su Teeco quando il database è abbastanza carico,diventerà molto lento.

    Comunque ci sono tanti modi per fare le ricerche in php, questione di logica e di programmazione.

    Passo 3 : Lo spider
    Lo spider che ho creato io rispetto a quello vostro in PHP, l'ho fatto in Visual Basic. Precisamente ho creato 2 spider. Uno che va alla ricerca di Feed RSS, l'altro naviga libero sul web. Quello di Teeco, secondo il mio punto di vista non va bene. Infatti se io inserisco un url di una pagina precedentemente creata con molto termini (mettiamo che voglio fare spamming), lui li memorizza tutti, facendomi comparire sempre nelle ricerche che vado a fare con Teeco.

    Ecco la logica che ho utilizzato io per fare lo spider (Si chiama Deep Web SR) :
    Dato un indirizzo web iniziale : ad esempio beliceweb.it

    Entra nel sito, e preleva tutti i link che ci sono ed inizia a scansionarli uno per uno.
    Ad ogni links che scansiona trova altri links di altri siti e quando ha finito con quelli in memoria li carica (dopo aver verificato che non siano già stati segnalati*) e continua con questo processo... si può dire che non si ferma mai.

    Per evitare che invii nuovamente le stesse informazioni, vengono fatti 2 controlli. Uno dallo spider che non ricarica in memoria quelli già visitati e l'altro nel momento in cui devono passare al database.

    Su Ogni link che scansiona effettua comunque dei controlli di questo tipo :
    1 - Ricava il titolo della pagina
    2 - Ricava la descrizione
    3 - Ricava le keywords
    Controlla se ci sono corrispondenze (max 100 caratteri) tra il titolo, la descrizione e le keywords. Se ci sono corrispondenze memorizza i dati sul database, altrimenti scarta il link.
    Per le pagine prive di titolo, descrizione e keywords invece, fa un parser della pagina, analizza 1024 bytes e se trova almeno tre corrispondenze identiche memorizza il sito,altrimenti lo scarta. Per esempio su un sito che parla di auto sprovvisto di tags, fa il parse e se trova per almeno 3 volte la parola auto, allora il risultato è true altrimenti e false.

    In ultimo allego un'immagine dello spider :
    che si trova qui : beliceweb.it/spider.jpg (si deve mettere prima http: // www . tutto unito)
    perchè non ho i permessi di postare collegamenti e immagini)

    Questo per ora è tutto. Vorrei continuare con questo post, ma capisco che è diventato molto lungo. Mi scuso a priori se non sono stato molto chiaro. Comunque in un modo o nell'altro continuate e portate avanti questo bellissimo progetto.
    Spero di non essere stato invadente e se così fosse, chiedo scusa.

    Grazie per la Vostra attenzione.
    Best Regards,
    Rosario Sancetta


  • Super User

    Ciao Beliceweb, benvenuto sul Forum gt e complimenti per la tua brillante esperienza. 🙂

    Teecno è stato ed è tutt'ora un esercizio collettivo di studio sul funzionamento dei motori di ricerca.

    Allo stato sono aperte qualsiasi ipotesi di approfondimento e studio, senza escludere possibili sviluppi commerciali futuri.

    Dovessi essere interessato, posta pure nei relativi topic o direttamente in questo. :ciauz:


  • User Newbie

    Ciao a tutti,
    io il mio l'ho finito.

    Si trova qui : kiposta.homeip.net

    Se portate ancora avanti il progetto e se posso esservi di aiuto, non esitate a contattarmi.

    Con la speranza di avere fatto cosa gradita,
    vi saluto con un'immenso in bocca al lupo.

    Comunque guardate in questo video i datacenter di Google
    valkiro.org/wordpress/?p=2213


  • User

    Che dbms usi?


  • User Newbie

    Grazie per l'interessamento.
    Approfondisco la tua domanda con una risposta più completa (ad opera di completezza) al fine di contribuire al post.

    Ecco come ho strutturato tutto:

    Un computer con OS Ubuntu ed installato Xampp con database testuale (quindi non relazionale).
    Il progetto nativo era con il db Sql, che poi ho sostituito con semplici files di testo perchè volevo portarlo su internet in uno spazio con solo php senza Sql. Ma all'occorrenza come ben sai, occorrono pochi minuti per mgrare sul db Sql. Cosa che non farò perchè il progetto non porta un centesimo se non una perdita giornaliera di soldi per il server accesso.

    Sempre sullo stesso computer c'è un emulare Windows con uno spider creato da me in vb. Quest'ultimo raccoglie i dati e li memorizza nei vari db per lettera alfabetica.

    Quindi sostanzialmente :

    • Lo spider raccoglie i dati e li invia ad uno specifico file testuale
    • Un modulo di ricerca con filtri pensati a trovare dati il più pertinente possibile

    Il progetto originale
    Il progetto iniziale si basava su 2 computer (uno server e l'altro solo per lo spider), Php, Sql, Ubuntu e Windows.

    Dato che sono esperimenti molto costosi che non portano nessun utile economico, ho tolto quasi tutto. Questo stesso esperimento funziona solo nelle ore diurne o quanto meno, quando il mio pc è acceso.

    Spero che la mia risposta sia stata utile e resto a Tua disposizione.

    Best Regards.