Come creare un motore di ricerca in PHP e MySQL

Perché vorresti creare un motore di ricerca? Esiste già un motore di ricerca per domarli tutti. Puoi utilizzare Google per trovare praticamente qualsiasi cosa su Internet e dubito che avrai mai le stesse capacità di elaborazione e archiviazione del Big G.

Allora perché creare il proprio motore di ricerca? — Per fare soldi, ovviamente!

…e diventare famoso come il creatore del prossimo grande motore di ricerca o perché come programmatore o ingegnere ti piacciono le sfide. Creare un motore di ricerca per Internet pubblico è complicato e se sei come me ti piace risolvere problemi complicati.

La terza applicazione è una ricerca personalizzata e ad alta velocità per il tuo sito Web di migliaia di pagine. Un motore di ricerca indicizzato sarà molto più veloce di una funzione di ricerca a testo completo e se la ricerca sul sito di Google non è abbastanza flessibile per il tuo sito puoi creare la tua funzionalità di ricerca.

LE BASI DELLA RICERCA

La base di qualsiasi GRANDE motore di ricerca è l'indice delle parole nelle pagine web, fondamentalmente un lungo elenco di parole e il modo in cui si riferiscono alle diverse pagine web.

Per creare un motore di ricerca devi fare quattro cose:

* Decidi quali pagine recuperare e recuperale
* Analizzare parole, frasi e collegamenti dalla paginagoogle-custom-se
* Assegna un punteggio a ogni parola chiave o frase chiave indicando quanto bene la frase si riferisce a quelle pagine e memorizza i punteggi nell'indice del motore di ricerca
* Fornire agli utenti un modo per interrogare l'indice e ottenere un elenco di pagine Web corrispondenti

Questo non è difficile per un programmatore esperto. Puoi farlo in un giorno se conosci le espressioni regolari e hai una certa esperienza con HTML e database.

Ora hai un motore di ricerca funzionante, aggiungi semplicemente un sacco di computer e dischi rigidi e presto indicizzerai tutta Internet. Se non sei disposto ad arrivare a tanto, un disco da un terabyte conterrà un indice di circa 50 milioni di pagine.

COME SEGNARE LE PAGINE

Dopo aver completato la funzionalità di ricerca di base, c'è molto lavoro da fare prima che qualcuno voglia utilizzare la tua nuova macchina. Un indice non basta. La sfida è come assegnare un punteggio alle pagine per fornire all'utente finale i risultati di ricerca più pertinenti alla sua idea di ciò che sta cercando.

Dovrai decidere quanto peso attribuire alle parole chiave nel tag del riquadro, nella descrizione e nei contenuti della pagina web principale. Per ottenere un buon punteggio, vorrai anche potenziare le parole chiave trovate nell'URL della pagina e controllare il testo di ancoraggio dei collegamenti in entrata. Tenere traccia dei collegamenti in entrata è la cosa più utile e più impegnativa di quanto sopra, dovrai mantenere una tabella di database separata con informazioni su tutti i collegamenti tra le pagine che indicizzi.

COSA INDICIARE E NON INDICIARE

Altri ostacoli che troverai quando inizi a indicizzare contenuti Internet reali sono il fatto che ci sono quantità inutili di spazzatura inutile che fluttuano ovunque e alla fine il tuo indice diventerà pieno di spam, pagine di affiliazione, domini parcheggiati, home page in lavorazione senza contenuto, link farm utilizzate dagli ottimizzatori dei motori di ricerca, siti mirror che utilizzano feed di dati per creare migliaia di pagine con elenchi di prodotti o altri contenuti riprodotti, ecc. Ecc.

Durante l'indicizzazione da Internet dovrai trovare modi per filtrare il contenuto spazzatura da ciò che le persone stanno effettivamente leggendo e cercando. Per cominciare, potresti limitare la profondità delle sottodirectory da scansionare, il numero di collegamenti che passano da una pagina dell'indice del dominio da scansionare e il numero di collegamenti per pagina web da consentire.

ANALISI DI SITI WEB

Esistono milioni di modi, sia giusti che sbagliati, per scrivere HTML e quando esegui l'indicizzazione da Internet dovrai gestirli tutti.

Quando si analizzano le parole chiave dalle pagine, non è necessario gestire solo lo standard HTML completo ma anche tutti i modi non standard supportati non ufficialmente dai browser Internet.

Per poter leggere tutte le pagine dovrai anche analizzare javascript lato client, gestire frame, CSS e iframe.
Questa è gran parte del lavoro su un motore di ricerca generale, per poter leggere tutti i tipi di contenuti.

PERCHÉ COSÌ TANTI URL?

Infine dovrai fare i conti con il fatto che molti siti web hanno molti URL che puntano alla stessa pagina web. Basta guardare questo esempio:

dmoz.org
www.dmoz.org
dmoz.org/index.html
www.dmoz.org/index.html

Tutti questi URL puntano alla stessa pagina web. Se non crei un codice speciale per gestirlo, presto avrai 4 risultati nel tuo motore di ricerca (uno per ogni URL) che vanno tutti alla stessa pagina. Non piacerai agli utenti.
Esiste anche la possibilità di stringhe di query in cui un ID di sessione dopo il punto interrogativo nell'URL creerà URL quasi infiniti per la stessa pagina web.

google.com?SID=4434324325325
google.com?SID=4387483748377
google.com?SID=7654565644466

Per il motore di ricerca ci sarà un numero davvero elevato di pagine contenenti tutte lo stesso contenuto. La soluzione rapida ovviamente è non indicizzare le pagine che includono una stringa di query. Oppure per rimuovere la stringa di query dalle pagine. Funziona ma rimuoverà anche molti contenuti legittimi (si pensi ai forum) dal tuo indice.

Ora hai tutte le informazioni necessarie per creare un sito motore di ricerca. Se stai cercando un motore di ricerca Internet generico, ci sono molti più dettagli che devi includere. Come robots.txt, mappe dei siti, reindirizzamenti, proxy, riconoscendo tipi di contenuto, algoritmi di classificazione avanzati e gestendo terabyte di dati. Tratterò più in dettaglio in un prossimo articolo. Buona fortuna con il tuo prossimo progetto sul motore di ricerca!

Categorieblog
  1. Pingback:Tweet che menzionano TopTut.com – Tutorial principali » Come creare un motore di ricerca in PHP e MySQL -- Topsy.com

  2. Pingback:TopTut.com - Tutorial principali » Come creare un motore di ricerca in PHP … | Promozione sui motori di ricerca online

I commenti sono chiusi.