Condividi tramite


Indici full-text

Data aggiornamento: 17 luglio 2006

Un indice full-text è un tipo speciale di indice funzionale, basato su token, che viene creato e gestito dal servizio Microsoft Full-Text Engine for SQL Server (MSFTESQL). Il processo di creazione di un indice full-text è piuttosto diverso da quello di altri tipi di indici. Anziché creare una struttura b-tree basata su un valore archiviato in una riga specifica, MSFTESQL crea un indice invertito, compresso e in pila, basato su singoli token dal testo che si sta indicizzando.

In SQL Server 2005, le dimensioni di un indice full-text sono limitate soltanto dalle risorse di memoria disponibili nel computer in cui viene eseguita l'istanza di SQL Server.

Il processo di creazione e gestione di un indice full-text è definito popolamento dell'indice. Microsoft supporta i tipi seguenti di popolamento degli indici full-text:

  • Popolamento completo
  • Popolamento basato sul rilevamento delle modifiche
  • Popolamento incrementale basato su timestamp

Popolamento completo

Si verifica in genere quando un catalogo full-text o un indice full-text viene popolato per la prima volta. Gli indici possono quindi essere gestiti utilizzando popolamenti incrementali o basati sul rilevamento delle modifiche.

Durante l'esecuzione di un popolamento completo di un catalogo full-text vengono create voci di indice per tutte le righe di tutte le tabelle coperte dal catalogo. Se per una tabella è necessario un popolamento completo, vengono create voci di indice per tutte le righe di quella tabella.

Se non si desidera che l'indice full-text venga popolato al momento della creazione, è necessario utilizzare l'istruzione CREATE FULLTEXT INDEX e specificare NO POPULATION per l'opzione CHANGE TRACKING OFF. L'indice viene popolato solo dopo che l'utente ha eseguito il comando ALTER FULLTEXT INDEX con la clausola START FULL, INCREMENTAL o UPDATE POPULATION.

Popolamento basato sul rilevamento delle modifiche

SQL Server registra le righe che sono state modificate in una tabella impostata per l'indicizzazione full-text. Tali modifiche vengono propagate all'indice full-text.

Per avviare il rilevamento delle modifiche, è necessario specificare l'opzione WITH CHANGE_TRACKING nell'istruzione CREATE FULLTEXT INDEX. Quando si utilizza il rilevamento delle modifiche è possibile specificare come queste vengono propagate all'indice full-text.

[!NOTA] Per il popolamento basato sul rilevamento delle modifiche è necessario popolare inizialmente l'indice full-text specificato.

Per propagare automaticamente le modifiche all'indice full-text, utilizzare l'opzione AUTO nell'istruzione CREATE FULLTEXT INDEX o ALTER FULLTEXT INDEX.

Se si specifica l'opzione MANUAL, le modifiche possono essere propagate manualmente, in base a una pianificazione o tramite SQL Server Agent, oppure possono essere propagate in modo autonomo.

[!NOTA] Al rilevamento delle modifiche è associato un piccolo overhead. Utilizzare l'opzione CHANGE TRACKING OFF se non si desidera che le modifiche vengano rilevate da SQL Server.

Popolamento incrementale basato su timestamp

Il popolamento incrementale aggiorna l'indice full-text relativamente alle righe aggiunte, eliminate o modificate dopo l'ultimo popolamento o durante la sua esecuzione. Per eseguire il popolamento incrementale è necessario che la tabella indicizzata contenga una colonna del tipo di dati timestamp. Se non è disponibile una colonna timestamp, il popolamento incrementale non può essere eseguito. Se viene richiesto un popolamento incrementale per una tabella senza una colonna timestamp, verrà eseguito un popolamento completo.

Le richieste di popolamento incrementale vengono implementate come popolamenti completi in caso di modifica di metadati che influiscono sull'indice full-text della tabella dopo l'ultimo popolamento. Ciò include modifiche alle definizioni di colonna, di indice o di indice full-text.

Al termine di un popolamento, SQL Gatherer registra un nuovo valore timestamp, uguale al maggiore valore timestamp riscontrato. Questo valore verrà utilizzato all'avvio del successivo popolamento incrementale.

Vedere anche

Concetti

Nozioni fondamentali sulla ricerca full-text

Altre risorse

CREATE FULLTEXT INDEX (Transact-SQL)
ALTER FULLTEXT INDEX (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Nuovo contenuto:
  • Aggiunta dell'indicazione che le dimensioni di un indice full-text sono limitate soltanto dalle risorse di memoria disponibili nel computer.