Gestione di indici full-text.

Contenuto dell'argomento

  • Visualizzazione e modifica delle proprietà di un indice full-text

  • Visualizzazione delle proprietà di tabelle e colonne indicizzate

  • Acquisizione di informazioni sulla colonna chiave full-text

  • Disabilitazione e riabilitazione di una tabella per l'indicizzazione full-text

  • Rimozione di un indice full-text da una tabella

Visualizzazione e modifica delle proprietà di un indice full-text

Per visualizzare o modificare le proprietà di un indice full-text in Management Studio

  1. In Esplora oggetti espandere il server.

  2. Espandere Database, quindi espandere il database che contiene l'indice full-text.

  3. Espandere Tabelle.

  4. Fare clic con il pulsante destro del mouse sulla tabella per la quale si desidera creare un indice full-text, selezionare Indice full-text e quindi scegliere Proprietà dal menu di scelta rapida Indice full-text. Verrà visualizzata la finestra di dialogo Proprietà indice full-text.

  5. Nel riquadro Selezione pagina è possibile selezionare le pagine seguenti:

    Pagina

    Descrizione

    Generale

    Sono contenute le proprietà di base dell'indice full-text, incluse diverse proprietà modificabili e alcune proprietà non modificabili quali il nome del database, il nome della tabella e il nome della colonna chiave full-text. Le proprietà modificabili sono le seguenti:

    • Elenco di parole non significative indice full-text

    • Indicizzazione full-text abilitata

    • Rilevamento modifiche

    • Elenco delle proprietà di ricerca

    Per ulteriori informazioni, vedere Proprietà indice full-text (pagina Generale).

    Colonne

    Consente di visualizzare le colonne della tabella disponibili per l'indicizzazione full-text. La colonna o le colonne selezionate contengono indici full-text. È possibile selezionare il numero desiderato di colonne disponibili da includere nell'indice full-text. Per ulteriori informazioni, vedere Proprietà indice full-text (pagina Colonne).

    Pianificazioni

    Utilizzare questa pagina per creare o gestire le pianificazioni per un processo di SQL Server Agent che consente di avviare un popolamento incrementale della tabella per i popolamenti dell'indice full-text. Per ulteriori informazioni, vedere Popolamento degli indici full-text.

    Nota importanteImportante

    Dopo avere chiuso la finestra di dialogo Proprietà indice full-text, eventuali nuove pianificazioni vengono associate a un processo di SQL Server Agent (Avvio del popolamento incrementale della tabella in database_name.table_name).

  6. Fare clic su OK. per salvare le modifiche e uscire dalla finestra di dialogo Proprietà indice full-text.

[TORNA ALL'INIZIO]

Visualizzazione delle proprietà di tabelle e colonne indicizzate

Per ottenere il valore di diverse proprietà di indicizzazione full-text, è possibile utilizzare varie funzioni Transact-SQL come OBJECTPROPERTYEX. Queste informazioni sono utili per l'amministrazione e la risoluzione dei problemi relativi alla ricerca full-text.

Nella tabella seguente sono elencate le proprietà full-text relative a tabelle e colonne indicizzate e le relative funzioni Transact-SQL.

Proprietà

Descrizione

Funzione

FullTextTypeColumn

TYPE COLUMN nella tabella in cui sono contenute le informazioni sui tipi di documenti della colonna.

COLUMNPROPERTY

IsFulltextIndexed

Indica se una colonna è stata abilitata per l'indicizzazione full-text.

COLUMNPROPERTY

IsFulltextKey

Indica se l'indice è la chiave full-text di una tabella.

INDEXPROPERTY

TableFulltextBackgroundUpdateIndexOn

Indica se per una tabella è stata impostata l'indicizzazione full-text degli aggiornamenti in background.

OBJECTPROPERTYEX

TableFulltextCatalogId

ID del catalogo full-text contenente i dati dell'indice full-text per la tabella.

OBJECTPROPERTYEX

TableFulltextChangeTrackingOn

Indica se per la tabella è abilitato il rilevamento delle modifiche full-text.

OBJECTPROPERTYEX

TableFulltextDocsProcessed

Numero di righe elaborate dopo l'avvio dell'indicizzazione full-text.

OBJECTPROPERTYEX

TableFulltextFailCount

Numero di righe non indicizzate dalla ricerca full-text.

OBJECTPROPERTYEX

TableFulltextItemCount

Numero di righe per cui l'indicizzazione full-text ha avuto esito positivo.

OBJECTPROPERTYEX

TableFulltextKeyColumn

ID della colonna chiave univoca full-text.

OBJECTPROPERTYEX

TableFullTextMergeStatus

Indica se in una tabella che dispone di un indice full-text è attualmente in corso un'operazione di unione.

OBJECTPROPERTYEX

TableFulltextPendingChanges

Numero di voci in sospeso del rilevamento delle modifiche da elaborare.

OBJECTPROPERTYEX

TableFulltextPopulateStatus

Stato popolamento di una tabella full-text.

OBJECTPROPERTYEX

TableHasActiveFulltextIndex

Indica se una tabella include un indice full-text attivo.

OBJECTPROPERTYEX

[INIZIO PAGINA]

Acquisizione di informazioni sulla colonna chiave full-text

In genere, il risultato della funzione con valori del set di righe CONTAINSTABLE o FREETEXTTABLE deve essere unito in join alla tabella di base. In questi casi, è necessario conoscere il nome della colonna chiave univoca. È possibile verificare se un determinato indice univoco viene utilizzato come chiave full-text e ottenere l'identificatore della colonna chiave full-text.

Per verificare se un determinato indice univoco viene utilizzato come colonna chiave full-text

  • Utilizzare un'istruzione SELECT per chiamare la funzione INDEXPROPERTY. Nella chiamata alla funzione utilizzare la funzione OBJECT_ID per convertire il nome della tabella (table_name) nell'ID corrispondente, specificare il nome di un indice univoco per la tabella, quindi specificare la proprietà di indice IsFulltextKey, come illustrato di seguito:

    SELECT INDEXPROPERTY( OBJECT_ID('table_name'), 'index_name',  'IsFulltextKey' );
    

    L'istruzione restituisce 1 se l'indice viene utilizzato per applicare l'unicità della colonna chiave full-text e 0 in caso contrario.

Esempio

Nell'esempio seguente viene illustrato come verificare se l'indice PK_Document_DocumentID viene utilizzato per applicare l'univocità della colonna chiave full-text:

USE AdventureWorks
GO
SELECT INDEXPROPERTY ( OBJECT_ID('Production.Document'), 'PK_Document_DocumentID',  'IsFulltextKey' )

In questo esempio viene restituito 1 se l'indice PK_Document_DocumentID viene utilizzato per applicare l'univocità della colonna chiave full-text. In caso contrario, viene restituito 0 o NULL. NULL indica che è in uso un nome di indice non valido, il nome dell'indice non corrisponde alla tabella, la tabella non esiste e così via.

Per trovare l'identificatore della colonna chiave full-text

  • Ogni tabella full-text dispone di una colonna utilizzata per applicare righe univoche per la tabella (la colonna chiave univoca). La proprietà TableFulltextKeyColumn, ottenuta dalla funzione OBJECTPROPERTYEX contiene l'ID della colonna chiave univoca.

    Per ottenere questo identificatore, è possibile utilizzare un'istruzione SELECT per chiamare la funzione OBJECTPROPERTYEX. Utilizzare la funzione OBJECT_ID per convertire il nome della tabella (table_name) nell'ID corrispondente e specificare la proprietà TableFulltextKeyColumn, come illustrato di seguito:

    SELECT OBJECTPROPERTYEX(OBJECT_ID( 'table_name'), 'TableFulltextKeyColumn' ) AS 'Column Identifier';
    

Esempi

Nell'esempio seguente viene restituito l'identificatore della colonna chiave full-text o NULL. NULL indica che è in uso un nome di indice non valido, il nome dell'indice non corrisponde alla tabella, la tabella non esiste e così via.

USE AdventureWorks;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn');
GO

Nell'esempio seguente viene illustrato come utilizzare l'identificatore della colonna chiave univoca per ottenere il nome della colonna.

USE AdventureWorks;
GO
DECLARE @key_column sysname
SET @key_column = Col_Name(Object_Id('Production.Document'),
ObjectProperty(Object_id('Production.Document'),
'TableFulltextKeyColumn') 
)
SELECT @key_column AS 'Unique Key Column';
GO

Nell'esempio viene restituita una colonna del set di risultati denominata Unique Key Column, in cui viene visualizzata una sola riga contenente il nome della colonna chiave univoca della tabella Document, DocumentID. Si noti che se questa query contenesse un nome di indice non valido, il nome di indice non corrispondesse alla tabella, la tabella non esistesse e così via, il risultato restituito sarebbe NULL.

[INIZIO PAGINA]

Disabilitazione e riabilitazione di una tabella per l'indicizzazione full-text

Per impostazione predefinita, in SQL Server tutti i database creati dall'utente sono abilitati per la funzionalità full-text. Una tabella viene inoltre abilitata automaticamente per l'indicizzazione full-text dopo la creazione di un indice full-text nella tabella e l'aggiunta di una colonna all'indice. L'indicizzazione full-text viene disabilitata automaticamente nella tabella quando l'ultima colonna viene eliminata dall'indice full-text.

In una tabella che dispone di un indice full-text è possibile disabilitare o riabilitare manualmente una tabella per indicizzazione full-text utilizzando SQL Server Management Studio.

Per abilitare una tabella per l'indicizzazione full-text

  1. Espandere il gruppo di server, espandere Database, quindi il database contenente la tabella che si desidera abilitare per l'indicizzazione full-text.

  2. Espandere Tabelle e fare clic con il pulsante destro del mouse sulla tabella che si desidera disabilitare o riabilitare per l'indicizzazione full-text.

  3. Scegliere Indice full-text, quindi fare clic su Disabilita indicizzazione full-text o Abilita indicizzazione full-text.

[TORNA ALL'INIZIO]

Rimozione di un indice full-text da una tabella

Per rimuovere un indice full-text da una tabella

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sulla tabella contenente l'indice full-text che si desidera eliminare.

  2. Scegliere Elimina indice full-text.

  3. Quando richiesto, fare clic su OK per confermare l'eliminazione dell'indice full-text.

[INIZIO PAGINA]