Per indicizzazione si intende l'inserimento di un sito web o un blog nel database di un motore di ricerca. L'indicizzazione di un sito internet, in altre parole, è il modo in cui il sito viene acquisito e interpretato dai motori di ricerca e quindi compare nelle loro pagine di risposta alle interrogazioni degli utenti web.
Diversa cosa è il posizionamento, che è invece un'azione volta a determinare che un sito compaia in una specifica posizione nelle pagine di risposta dei motori (cioè nelle prime posizioni).
Operazioni dei motori di ricerca Registrazione dei siti
Dal lato dei motori di ricerca, l'indicizzazione dei siti web/blog è la loro prima e fondamentale operazione. In realtà questa fase è preceduta dalla scansione delle pagine web pubbliche, che avviene periodicamente (e in automatico) da parte dei principali motori, a patto che le pagine rispettino determinati requisiti di progettazione web e di qualità. Successivamente potrà avvenire la fase di posizionamento, che è quella di cui si occupano gli esperti di ottimizzazione. L'indicizzazione è solo una delle tre fasi necessarie (scansione per trovare contenuti web, indicizzazione per assimilarli e posizionamento per stabilire come e dove siano ricercabili), tutte e tre ben distinte tra di loro, ed è importante non fare confusione nel considerarle. Ad esempio, l'indicizzazione è solo la parte necessaria perché le pagine del sito siano visibili sui motori, ma non è solitamente sufficiente perché il sito sia reperibile una ricerca arbitraria.
Dopo averli registrati, i motori di ricerca scansionano periodicamente i siti presenti nei propri archivi per verificare eventuali aggiornamenti: tramite particolari programmi chiamati spider (letteralmente "ragni", nel senso che essi attraversano la "ragnatela" di collegamenti con cui si raffigura simbolicamente il web), entrano in un sito e ne incominciano a leggere il markup HTML, alla ricerca di eventuali modifiche del contenuto o della struttura. Quando uno spider trova un link a un'altra pagina del sito o ad un altro sito, analizza anche quest'ultimo di conseguenza.
Quando il motore di ricerca termina la lunga operazione di scansione dei siti già presenti in archivio comincia a scansionare tutti i siti proposti dai webmaster tramite il servizio add url (segnala un sito) che si trova in tutti i motori di ricerca. Questo sistema è oramai obsoleto: è preferibile fare uso di strumenti più moderni per monitorare il proprio sito, come ad esempio la Search Console di Google.
Il sito non viene indicizzato, totalmente o in parte, se nel markup HTML sono presenti istruzioni come , oppure, in caso di foto, ; se invece non è specificato nulla al riguardo, viene indicizzato l'intero contenuto della pagina Web.Ad eccezione dei meta tag ROBOTS, i metadati HTML hanno un'utilità minima per il posizionamento dei siti nei motori di ricerca, che si basano "sul testo contenuto nella pagina stessa, sulla popolarità del sito web e su diversi altri parametri".
Classificazione dei siti Dopo aver scansionato la rete e quindi indicizzato (nel senso di raggruppato) una grandissima mole di pagine web, il motore di ricerca passa alla seconda fase: classificarle e posizionarle in base a delle parole chiave che rispecchino il più possibile il sito. In questo modo i motori di ricerca, tramite particolari algoritmi, assicurano ai loro utenti contenuti validi e aggiornati. Ogni motore utilizza algoritmi particolari, come il PageRank di Google, che attribuisce ad una pagina un'importanza che dipende dal numero di collegamenti che puntano a tale pagina dagli altri siti internet.
Ultimamente i motori di ricerca tendono a penalizzare, ma non sempre, l'uso di segnalazioni/indicizzazioni automatiche tramite software.
Indicizzazioni ripetute della stessa pagina vengono considerate spam.
I tempi di indicizzazione di un sito internet possono variare da poche settimane ai tre mesi.
Diritto italiano Una sentenza del Tribunale di Roma emessa il 23 marzo 2011, ha condannato un motore di ricerca per aver pubblicato link a siti web peer-to-peer che consentono lo streaming di film coperti da copyright.
Fattori di progettazione dell'indice I fattori principali nella progettazione dell'architettura di un motore di ricerca includono:
Unisci fattori Come i dati entrano nell'indice o come le parole o le caratteristiche dell'oggetto vengono aggiunte all'indice durante l'attraversamento del corpo del testo e se più indicizzatori possono funzionare in modo asincrono. L'indicizzatore deve prima verificare se sta aggiornando il vecchio contenuto o aggiungendo nuovo contenuto. L'attraversamento è in genere correlato alla politica di raccolta dei dati. L'unione dell'indice del motore di ricerca è simile nel concetto al comando SQL Merge e ad altri algoritmi di unione. Tecniche di archiviazione Come memorizzare i dati dell'indice, ovvero se le informazioni devono essere compresse o filtrate. Dimensione dell'indice Quanta memoria del computer è necessaria per supportare l'indice. Velocità di ricerca La velocità con cui una parola può essere trovata nell'indice invertito. La velocità di trovare una voce in una struttura di dati, rispetto alla rapidità con cui può essere aggiornata o rimossa, è un obiettivo centrale dell'informatica. Manutenzione Come viene mantenuto l'indice nel tempo. Tolleranza ai guasti Quanto è importante che il servizio sia affidabile. I problemi includono la gestione del danneggiamento dell'indice, la determinazione se i dati non validi possono essere trattati isolatamente, la gestione di hardware difettoso, partizionamento e schemi come il partizionamento basato su hash o composito, nonché la replica.
Indice delle strutture dati Le architetture dei motori di ricerca variano nel modo in cui viene eseguita l'indicizzazione e nei metodi di memorizzazione dell'indice per soddisfare i vari fattori di progettazione.
Albero dei suffissi Strutturato in senso figurato come un albero, supporta la ricerca temporale lineare. Costruito memorizzando i suffissi delle parole. L'albero dei suffissi è un tipo di trie. I tentativi supportano l'hashing estendibile, che è importante per l'indicizzazione dei motori di ricerca. Utilizzato per la ricerca di modelli nelle sequenze di DNA e nel raggruppamento. Uno dei principali svantaggi è che la memorizzazione di una parola nell'albero può richiedere spazio oltre a quello necessario per memorizzare la parola stessa. Una rappresentazione alternativa è un array di suffissi, che si ritiene richieda meno memoria virtuale e supporti la compressione dei dati come l'algoritmo BWTtrie, Dictionary of Algorithms and Data Structures, U.S. National Institute of Standards and Technology..
Indice invertito Memorizza un elenco di occorrenze di ciascun criterio di ricerca atomico, tipicamente sotto forma di tabella hash o albero binarioBlack, Paul E., inverted index, Dictionary of Algorithms and Data Structures, U.S. National Institute of Standards and Technology Oct 2006. Verified Dec 2006.C. C. Foster, Information retrieval: information storage and retrieval using AVL trees, Proceedings of the 1965 20th national conference, p.192-205, August 24–26, 1965, Cleveland, Ohio, United StatesLandauer, W. I.: The balanced tree and its utilization in information retrieval. IEEE Trans. on Electronic Computers, Vol. EC-12, No. 6, December 1963..
Indice di citazione Memorizza citazioni o collegamenti ipertestuali tra documenti per supportare l'analisi delle citazioni, un argomento di bibliometria. Indice n -gram Memorizza sequenze di lunghezza dei dati per supportare altri tipi di recupero o estrazione di testoGoogle Ngram Datasets for sale at LDC Catalog. Matrice dei termini del documento Utilizzato nell'analisi semantica latente, memorizza le occorrenze di parole nei documenti in una matrice sparsa bidimensionale.
Sfide nel parallelismo Una delle principali sfide nella progettazione dei motori di ricerca è la gestione dei processi di elaborazione seriale. Ci sono molte opportunità per condizioni di gara e errori coerenti. Ad esempio, un nuovo documento viene aggiunto al corpus e l'indice deve essere aggiornato, ma contemporaneamente l'indice deve continuare a rispondere alle query di ricerca. Questa è una collisione tra due attività concorrenti. Considera che gli autori sono produttori di informazioni e un web crawler è il consumatore di queste informazioni, afferra il testo e lo memorizza in una cache (o corpus). L'indice forward è il consumatore delle informazioni prodotte dal corpus e l'indice invertito è il consumatore delle informazioni prodotte dall'indice forward. Questo è comunemente indicato come modello produttore-consumatore. L'indicizzatore è il produttore di informazioni ricercabili e gli utenti sono i consumatori che devono cercare. La sfida è amplificata quando si lavora con l'archiviazione distribuita e l'elaborazione distribuita. Nel tentativo di scalare con quantità maggiori di informazioni indicizzate, l'architettura del motore di ricerca può coinvolgere il calcolo distribuito, in cui il motore di ricerca è costituito da diverse macchine che operano all'unisono. Ciò aumenta le possibilità di incoerenza e rende più difficile mantenere un'architettura parallela, distribuita e completamente sincronizzataJeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. Google, Inc. OSDI. 2004..
Indici invertiti Molti motori di ricerca incorporano un indice invertito durante la valutazione di una query di ricerca per individuare rapidamente i documenti contenenti le parole in una query e quindi classificare questi documenti in base alla pertinenza. Poiché l'indice invertito memorizza un elenco dei documenti contenenti ciascuna parola, il motore di ricerca può utilizzare l'accesso diretto per trovare i documenti associati a ciascuna parola nella query al fine di recuperare rapidamente i documenti corrispondenti. Quanto segue è un'illustrazione semplificata di un indice invertito: +Indice invertitoparolaDocumentiilDocumento 1, Documento 3, Documento 4, Documento 5, Documento 7muccaDocumento 2, Documento 3, Documento 4diceDocumento 5muggireDocumento 7 Questo indice può solo determinare se una parola esiste all'interno di un particolare documento, poiché non memorizza informazioni riguardanti la frequenza e la posizione della parola; è quindi considerato un indice booleano. Tale indice determina quali documenti corrispondono a una query ma non classifica i documenti corrispondenti. In alcuni progetti l'indice include informazioni aggiuntive come la frequenza di ogni parola in ogni documento o la posizione di una parola in ogni documento. informazioni sulla posizione consentono all'algoritmo di ricerca di identificare la prossimità delle parole per supportare la ricerca di frasi; la frequenza può essere utilizzata per aiutare a classificare la rilevanza dei documenti per la query. Tali argomenti sono il fulcro della ricerca nel recupero delle informazioni.
L'indice invertito è una matrice sparsa, poiché non tutte le parole sono presenti in ogni documento. Per ridurre i requisiti di memoria di archiviazione del computer, viene archiviata in modo diverso da una matrice bidimensionale. L'indice è simile al termine matrici di documenti utilizzato dall'analisi semantica latente. L'indice invertito può essere considerato una forma di tabella hash. In alcuni casi l'indice è una forma di albero binario, che richiede ulteriore spazio di archiviazione ma può ridurre il tempo di ricerca. Negli indici più grandi l'architettura è tipicamente una tabella hash distribuitaTang, Hunqiang.Dwarkadas, Sandhya, "Hybrid Global Local Indexing for Efficient Peer to Peer Information Retrieval". University of Rochester, p 1..
Unione dell'indice