Configura e gestisce le parole stop e le liste di stop per Full-Text Ricerca

Si applica a:SQL Server, Database SQL di Azure e Istanza gestita di SQL di Azure.

Per evitare che un indice a testo completo si gonfifichi, il Motore di database di SQL Server ha un meccanismo che scarta le stringhe comuni che non aiutano la 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. Questo significa che le query full-text non eseguono ricerche sulle stopword.

Termine Description
Parole finali Una stopword può essere una parola con un significato in una lingua specifica. Ad esempio, nella lingua inglese, parole come a, and, is, e the vengono escluse dall'indice del testo completo poiché si sa che sono inutili per una ricerca. Una stopword può anche essere un token che non ha significato linguistico.
Liste di esclusione Le parole di stop sono gestite nei database utilizzando oggetti chiamati 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. Il motore di database viene fornito con una lista di stop di sistema che contiene le parole chiave più comunemente usate per ogni lingua supportata, cioè per ogni lingua associata di default a determinati interruzioni di parole. È possibile copiare l'elenco di parole non significative di sistema e personalizzarne una copia aggiungendone e rimuovendone alcune.

    L'elenco degli stop del sistema è installato nel Database delle Risorse.

  • Usa una lista di stop personalizzata esistente da un altro database nell'istanza server corrente, poi aggiungi o elimina le parole stop secondo il caso.

Creare un nuovo elenco di parole da ignorare

Puoi creare una stoplist usando Transact-SQL (T-SQL) o SQL Server Management Studio (SSMS).

Creare un nuovo stoplist con Transact-SQL

Utilizzare il CREATE FULLTEXT STOPLIST.

Crea una nuova lista di stop con SQL Server 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.

Attività metodo
Crea un indice a testo completo e associalo a una lista degli stop Utilizzare il CREATE FULLTEXT INDEX.
Associare o disassociare una stoplist a un indice full-text esistente Utilizzare il ALTER FULLTEXT INDEX.

Cambiare le stopwords in una stoplist

Puoi modificare le parole stop in una stoplist usando Transact-SQL (T-SQL) o SQL Server Management Studio (SSMS).

Aggiungere o eliminare stopword da una stoplist con Transact-SQL

Utilizzare il ALTER FULLTEXT STOPLIST.

Aggiungi o elimina le parole stop da una lista con SQL Server 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 stopword deve essere univoca. Non può essere già in questa lista di stop per la lingua che scegli.

    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

Usa i seguenti metodi per visualizzare e gestire gli stoplist.

Attività metodo
Visualizzare tutte le stopword in una lista di stopword Usa sys.fulltext_stopwords.
Ottieni informazioni su tutte le liste di stop nel database attuale Usa sys.fulltext_stoplists e sys.fulltext_stopwords.
Visualizzare il risultato della tokenizzazione di una combinazione di word breaker, thesaurus e stoplist Usa sys.dm_fts_parser.
Sopprimere un messaggio di errore se le parole di stop causano il fallimento di un'operazione booleana a una query full-text Usa Configurazione del server: trasforma le parole non significative.

Ulteriori informazioni sulla posizione della stopword

Sebbene l'indice del testo completo ignori l'inclusione delle parole chiuse, tiene conto della loro posizione. Ad esempio, consideriamo la frase, Instructions are applicable to these Adventure Works Cycles models. Nella tabella seguente viene illustrata la posizione delle parole nella frase:

Parola Posizione
Instructions 1
are 2
applicable 3
to 4
these 5
Adventure 6
Works 7
Cycles 8
models 9

Le parole non significative are, to e these, che si trovano nelle posizioni 2, 4 e 5, sono 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 non significative di SQL Server 2005 (9.x) sono sostituite da stopwords. Quando si aggiorna un database da SQL Server 2005 (9.x), i file delle parole non significative non vengono più utilizzati. Tuttavia, i file di rumore-word sono memorizzati nella FTDATA\FTNoiseThesaurusBak cartella e puoi usarli successivamente quando aggiorni o crei le corrispondenti stoplist. Per informazioni sull'aggiornamento dei file delle parole di disturbo agli elenchi di esclusione, vedere Aggiornamento della ricerca full-text.