Configurare e gestire parole non significative ed elenchi di parole non significative per la ricerca full-textConfigure and Manage Stopwords and Stoplists for Full-Text Search

Per garantire l'efficienza di un indice full-text, SQL ServerSQL Server è dotato di un meccanismo che rimuove le stringhe più frequenti, inutili ai fini della ricerca.To prevent a full-text index from becoming bloated, SQL ServerSQL Server has a mechanism that discards commonly occurring strings that do not help the search. Queste stringhe scartate vengono denominate parole non significative.These discarded strings are called stopwords. Durante la creazione dell'indice, il motore di ricerca full-text omette le parole non significative dall'indice full-text,During index creation, the Full-Text Engine omits stopwords from the full-text index. in modo che le query full-text non eseguano ricerche in tali parole.This means that full-text queries will not search on stopwords.

Parole non significative.Stopwords. Una parola non significativa può essere una parola con un significato in una lingua specifica.A stopword can be a word with meaning in a specific language. Nella lingua italiana, ad esempio, parole quali "circa", "con", "devo" e "cui" vengono escluse dall'indice full-text poiché in pratica risultano inutili ai fini della ricerca.For example, in the English language, words such as "a," "and," "is," and "the" are left out of the full-text index since they are known to be useless to a search. Una parola non significativa può anche essere un token che non ha un significato linguistico.A stopword can also be a token that does not have linguistic meaning.

Elenchi di parole non significative.Stoplists. Le parole non significative vengono gestite nei database utilizzando oggetti denominati elenchi di parole non significative.Stopwords are managed in databases using objects called stoplists. Un elenco di parole non significative è un elenco che, quando associato a un indice full-text, viene applicato alle query full-text su tale indice.A stoplist is a list of stopwords that, when associated with a full-text index, is applied to full-text queries on that index.

Usare un elenco di parole non significative esistenteUse an existing stoplist

È possibile usare un elenco di parole non significative esistente in uno dei modi seguenti:You can use an existsing stoplist in the following ways:

  • Usare l'elenco di parole non significative fornito dal sistema nel database.Use the system-supplied stoplist in the database. SQL ServerSQL Server include un elenco di parole non significative che contiene le parole non significative più comuni per ogni lingua supportata, ovvero per ogni lingua associata a word breaker specifici per impostazione predefinita. ships with a system stoplist that contains the most commonly used stopwords for each supported language, that is for every language associated with given word breakers by default. È possibile copiare l'elenco di parole non significative di sistema e personalizzarne una copia aggiungendone e rimuovendone alcune.You can copy the system stoplist and customize your copy by adding and removing stopwords.

    L'elenco di parole non significative di sistema è installato nel database Resource .The system stoplist is installed in the Resource database.

  • Usare un elenco di parole non significative personalizzato esistente da qualsiasi altro database nell'istanza del server corrente e quindi aggiungere ed eliminare le parole non significative in base alle specifiche esigenze.Use an existing custom stoplist from another database in the current server instance, then add or drop stopwords as appropriate.

Creare un nuovo elenco di parole non significativeCreate a new stoplist

Creare un nuovo elenco di parole non significative con Transact-SQLCreate a new stoplist with Transact-SQL

Usare CREATE FULLTEXT STOPLIST.Use CREATE FULLTEXT STOPLIST.

Creare un nuovo elenco di parole non significative con Management StudioCreate a new stoplist with Management Studio

  1. In Esplora oggetti espandere il server.In Object Explorer, expand the server.

  2. Espandere Database, quindi espandere il database in cui si vuole creare l'elenco di parole non significative full-text.Expand Databases, and then expand the database in which you want to create the full-text stoplist.

  3. Espandere Archivio, quindi fare clic con il pulsante destro del mouse su Elenchi di parole non significative full-text.Expand Storage, and then right-click Full-Text Stoplists.

  4. Selezionare Nuovo elenco di parole non significative full-text.Select New Full-Text Stoplist.

  5. Immettere il nome del nuovo elenco.Enter your new stoplist's name.

  6. Facoltativamente, specificare un altro utente come proprietario dell'elenco di parole non significative.Optionally, specify someone else as the stoplist owner.

  7. Selezionare una delle opzioni di creazione di un elenco di parole non significative seguenti:Select one of the following create stoplist options:

  8. Fare clic su OK.Click OK.

Usare un elenco di parole non significative nelle query full-textUse a stoplist in full-text queries

Per usare un elenco di parole non significative nelle query, è necessario associarlo a un indice full-text.To use a stoplist in queries, you must associate it with a full-text index. È possibile associare 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.You can attach a stoplist to a full-text index when you create the index, or you can alter the index later to add a stoplist.

Creare un indice full-text e associare un elenco di parole non significativeCreate a full-text index and associate a stoplist with it

Usare CREATE FULLTEXT INDEX (Transact-SQL).Use CREATE FULLTEXT INDEX (Transact-SQL).

Associare o annullare l'associazione di un elenco di parole non significative a un indice full-text esistenteAssociate or disassociate a stoplist with an existing full-text index

Usare ALTER FULLTEXT INDEX (Transact-SQL).Use ALTER FULLTEXT INDEX (Transact-SQL).

Modificare le parole non significative in un elencoChange the stopwords in a stoplist

Aggiungere o eliminare parole non significative in un elenco con Transact-SQLAdd or drop stopwords from a stoplist with Transact-SQL

Usare ALTER FULLTEXT STOPLIST (Transact-SQL).Use ALTER FULLTEXT STOPLIST (Transact-SQL).

Aggiungere o eliminare parole non significative in un elenco con Management StudioAdd or drop stopwords from a stoplist with Management Studio

  1. In Esplora oggetti espandere il server.In Object Explorer, expand the server.

  2. Espandere Database, quindi espandere il database.Expand Databases, and then expand the database.

  3. Espandere Archiviazione, quindi selezionare Elenco di parole non significative full-text.Expand Storage, and then select Full Text Stoplists.

  4. Fare clic con il pulsante destro del mouse sull'elenco di parole non significative che si vuole modificare, quindi scegliere Proprietà.Right-click the stoplist whose properties you want to change, and select Properties.

  5. Nella finestra di dialogo Proprietà elenco di parole non significative full-text :In the Full-Text Stoplist Properties dialog box:

    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.In the Action list box, select one of the following actions: Add stopword, Delete stopword, Delete all stopwords, or Clear stoplist.

    2. Se la casella di testo Parola non significativa è abilitata per l'azione selezionata, immettere una singola parola non significativa.If the Stopword text box is enabled for the selected action, enter a single stopword. Questa parola deve essere univoca, ovvero non ancora inclusa nell'elenco di parole non significative per la lingua selezionata.This stopword must be unique; that is, not yet in this stoplist for the language that you select.

    3. Se la casella di riepilogo Full-text language è abilitata per l'azione selezionata, selezionare una lingua.If the Full-text language list box is enabled for the selected action, select a language.

  6. Fare clic su OK.Click OK.

Gestire gli elenchi di parole non significative e il relativo utilizzoManage stoplists and their usage

Visualizzare tutte le parole non significative riunite in un elencoView all the stopwords in a stoplist

Usare sys.fulltext_stopwords (Transact-SQL).Use sys.fulltext_stopwords (Transact-SQL).

Ottenere informazioni su tutti gli elenchi di parole non significative nel database correnteGet info about all the stoplists in the current database

Usare sys.fulltext_stoplists (Transact-SQL) e sys.fulltext_stopwords (Transact-SQL).Use sys.fulltext_stoplists (Transact-SQL) and sys.fulltext_stopwords (Transact-SQL).

Visualizzare il risultato della suddivisione in token di una combinazione di word breaker, thesaurus ed elenchi di parole non significativeView the tokenization result of a word breaker, thesaurus, and stoplist combination

Usare sys.dm_fts_parser (Transact-SQL).Use sys.dm_fts_parser (Transact-SQL).

Eliminare un messaggio di errore visualizzato nel caso in cui le parole non significative impediscono l'esecuzione di un'operazione booleana in una query full-textSuppress an error message if stopwords cause a Boolean operation on a full-text query to fail

Usare l'opzione di configurazione del server transform noise words.Use the transform noise words Server Configuration Option.

Altre informazioni sulla posizione delle parole non significativeMore info about stopword position

Anche se ignora l'inclusione di parole non significative, l'indice full-text ne prende in considerazione la posizione.Although it ignores the inclusion of stopwords, the full-text index does take into account their position. Si consideri ad esempio la frase "Istruzioni non valide per questi modelli Adventure Works Cycles".For example, consider the phrase, "Instructions are applicable to these Adventure Works Cycles models". Nella tabella seguente viene illustrata la posizione delle parole nella frase:The following table depicts the position of the words in the phrase:

WordWord PosizionePosition
IstruzioniInstructions 11
nonare 22
valideapplicable 33
into 44
questithese 55
modelliAdventure 66
AdventureWorks 77
WorksCycles 88
modellimodels 99

Le parole non significative "sono", "in" e "questi" nelle posizioni 2, 4 e 5 vengono escluse dall'indice full-text.The stopwords "are", "to", and "these" that are in positions 2, 4, and 5 are left out of the full-text index. Le relative informazioni di posizione vengono comunque mantenute, lasciando invariata la posizione delle altre parole nella frase.However, their positional information is maintained, thereby leaving the position of the other words in the phrase unaffected.

Aggiornare le parole non significative da SQL Server 2005Upgrade noise words from SQL Server 2005

SQL Server 2005SQL Server 2005 Le parole non significative di sono state sostituite. noise words have been replaced by stopwords. Quando si aggiorna un database da SQL Server 2005SQL Server 2005, i file delle parole non significative non vengono più utilizzati.When a database is upgraded from SQL Server 2005SQL Server 2005, the noise-word files are no longer used. Tali file vengono tuttavia archiviati nella cartella FTDATA\ FTNoiseThesaurusBak e possono essere utilizzati in seguito durante l'aggiornamento o la compilazione di elenchi di parole non significative corrispondenti.However, the noise-word files are stored in the FTDATA\ FTNoiseThesaurusBak folder, and you can use them later when updating or building the corresponding stoplists. Per informazioni sull'aggiornamento dei file delle parole non significative agli elenchi corrispondenti, vedere Aggiornamento della ricerca full-text.For information about upgrading noise-word files to stoplists, see Upgrade Full-Text Search.