Condividi tramite


Configurare e gestire parole non significative ed elenchi di parole non significative per la ricerca a testo completo.

Si applica a:SQL ServerDatabase SQL di Azure

Per garantire l'efficienza di un indice full-text, SQL Server è dotato di un meccanismo che rimuove le stringhe più frequenti, inutili ai fini della ricerca. Queste stringhe scartate vengono denominate parole non significative. Durante la creazione dell'indice, il motore full-text omette le stopword dall'indice full-text. Ciò significa che le query full-text non eseguiranno ricerche sui termini di stopwords.

Stopwords Una stopword può essere una parola con un significato in una lingua specifica. Ad esempio, nella lingua italiana, parole come "un," "e," "è," e "il" vengono escluse dall'indice full-text poiché sono considerate inutili per una ricerca. Una stopword può anche essere un token che non ha significato linguistico.

Liste di esclusione. Le stopword vengono gestite nei database utilizzando oggetti denominati stoplist. Una stoplist è un elenco di parole non significative che, quando associato a un indice di testo completo, viene applicato alle query di testo completo su quell'indice.

Usare un elenco di parole non significative esistente

Puoi utilizzare una stoplist esistente nei modi seguenti:

  • Usare la stoplist fornita dal sistema all'interno del database. SQL Server viene fornito con un elenco di sistema di parole non significative che contiene le parole non significative più comuni per ciascuna lingua supportata, ovvero per ogni lingua associata agli analizzatori di parole per impostazione predefinita. È possibile copiare l'elenco di parole non significative di sistema e personalizzarne una copia aggiungendone e rimuovendone alcune.

    La stoplist di sistema è installata nel database Resource.

  • Usare un elenco di stopwords personalizzato esistente da un altro database nell'istanza del server corrente, quindi aggiungere o eliminare le stopwords in base alle specifiche esigenze.

Creare un nuovo elenco di parole da ignorare

Creare un nuovo stoplist con Transact-SQL

Usare CREATE FULLTEXT STOPLIST.

Creare un nuovo elenco stop con Management Studio

  1. In Esplora oggetti, espandere il server.

  2. Espandi Databases, quindi espandi il database in cui vuoi creare l'elenco di parole non significative full-text.

  3. Espandere Archiviazione, quindi fare clic con il pulsante destro del mouse su Stoplist Full-Text.

  4. Selezionare Nuovo stoplist full-text.

  5. Inserisci il nome della tua nuova lista di esclusione.

  6. Opzionalmente, specificare un altro utente come proprietario della lista di esclusione.

  7. Selezionare una delle seguenti opzioni per creare una stoplist:

    • Creare una stoplist vuota

    • Creare dall'elenco di esclusione del sistema

    • Creare una stoplist esistente a partire da un elenco full-text

    Per altre informazioni, vedi Nuovo elenco di parole non significative full-text (pagina Generale).

  8. Seleziona OK.

Usare una stoplist nelle query full-text

Per utilizzare una *stoplist* nelle query, è necessario associarla a un indice full-text. È possibile collegare un elenco di parole non significative a un indice full-text quando si crea l'indice, oppure è possibile modificare l'indice in seguito per aggiungere un elenco di parole non significative.

Creare un indice full-text e associare una stoplist

Usa CREATE FULLTEXT INDEX (Transact-SQL).

Associare o disassociare una stoplist a un indice full-text esistente

Usa ALTER FULLTEXT INDEX (Transact-SQL).

Cambiare le stopwords in una stoplist

Aggiungere o eliminare stopword da una stoplist con Transact-SQL

Usa ALTER FULLTEXT STOPLIST (Transact-SQL).

Aggiungere o eliminare parole non significative (stopwords) da una lista di esclusione con Management Studio

  1. In Esplora oggetti, espandere il server.

  2. Espandi Basi di dati, quindi espandi la base di dati.

  3. Espandere Archiviazione, quindi selezionare Stoplist full-text.

  4. Fare clic con il pulsante destro del mouse sull'elenco di parole non significative le cui proprietà si desidera modificare, quindi scegliere Proprietà.

  5. Nella finestra di dialogo Proprietà della stoplist full-text:

    1. Nella casella di riepilogo Azione selezionare una delle azioni seguenti: Aggiungi parola non significativa, Elimina parola non significativa, Elimina tutte le parole non significativeo Cancella elenco di parole non significative.

    2. Se la casella di testo Stopword è abilitata per l'azione selezionata, immettere una singola stopword. Questa parola d'arresto deve essere univoca, ovvero non ancora inclusa nell'elenco di parole d'arresto per la lingua che selezioni.

    3. Se la casella di riepilogo Full-text language è abilitata per l'azione selezionata, selezionare una lingua.

  6. Seleziona OK.

Gestire gli elenchi di parole non significative e il relativo utilizzo

Visualizzare tutte le stopword in una lista di stopword

Usa sys.fulltext_stopwords (Transact-SQL).

Ottieni informazioni su tutti i filtri di parole nel database corrente

Usa sys.fulltext_stoplists (Transact-SQL) e sys.fulltext_stopwords (Transact-SQL).

Visualizzare il risultato della tokenizzazione di una combinazione di word breaker, thesaurus e stoplist

Usa sys.dm_fts_parser (Transact-SQL).

Sopprimere un messaggio di errore se le parole di stop causano il fallimento di un'operazione booleana a una query full-text

Usare l'opzione di configurazione del server transform noise words.

Altre informazioni sulla posizione delle parole di stop

Anche se ignora l'inclusione delle parole vuote, l'indice full-text considera la loro posizione. Si consideri, ad esempio, la frase "Le istruzioni sono applicabili a questi modelli di Adventure Works Cycles". Nella tabella seguente viene illustrata la posizione delle parole nella frase:

Parola Posizione
Istruzioni 1
ara 2
applicabile 3
to 4
questi 5
Avventura 6
Opere 7
Cicli 8
modelli 9

Le parole di stop "are", "a" e "queste" nelle posizioni 2, 4 e 5 vengono escluse dall'indice full-text. Le relative informazioni di posizione vengono comunque mantenute, lasciando invariata la posizione delle altre parole nella frase.

Aggiornare le parole chiave non significative di SQL Server 2005

Le parole chiave non rilevanti di SQL Server 2005 (9.x) sono state sostituite con stopwords. Quando si aggiorna un database da SQL Server 2005 (9.x), i file delle parole non significative non vengono più utilizzati. Tali file vengono tuttavia archiviati nella cartella FTDATA\ FTNoiseThesaurusBak e possono essere utilizzati in seguito durante l'aggiornamento o la compilazione dell'elenco delle stoplist corrispondenti. Per informazioni sull'aggiornamento dei file delle parole di disturbo agli elenchi di esclusione, vedere Aggiornamento della ricerca full-text.