Configurazione e gestione di word breaker e stemmer per la ricerca
Word breaker e stemmer eseguono l'analisi linguistica su tutti i dati con indicizzazione full-text. L'analisi linguistica riguarda la ricerca dell'inizio e della fine delle parole (isolamento delle parole) e la coniugazione dei verbi (flessione). Word breaker e stemmer sono specifici della lingua e le regole per l'analisi linguistica variano a seconda della lingua. Un word breaker identifica singole parole determinando i delimitatori di parola in base alle regole lessicali della lingua. Ogni parola ( token) viene inserita nell'indice full-text utilizzando una rappresentazione compressa per ridurre le relative dimensioni. Lo stemmer genera forme flessive di una particolare parola in base alle regole di quella lingua, ad esempio "running", "ran" e "runner" sono varie forme della parola "run".
L'utilizzo di word breaker specifici di ogni lingua consente una maggiore accuratezza dei termini risultanti per le diverse lingue. Se è disponibile un word breaker per la famiglia linguistica, ma non per una specifica lingua secondaria, viene utilizzata la lingua principale. Il word breaker francese viene ad esempio utilizzato anche per la gestione di testo redatto in francese canadese. Se per una particolare lingua non sono disponibili word breaker, verrà utilizzato il word breaker della lingua neutra. Con il word breaker della lingua neutra, le parole vengono spezzate in corrispondenza di caratteri neutri, ad esempio spazi e segni di punteggiatura.
Registrazione di word breaker
Per potere utilizzare i word breaker di una determinata lingua, è necessario registrarli. Per i word breaker registrati, gli stemmer linguistici associati, le parole non significative (parole non significative) e i file del thesaurus diventano disponibili anche per le operazioni di indicizzazione e query full-text. Per visualizzare un elenco delle lingue i cui word breaker sono attualmente registrati con SQL Server, usare l'istruzione Transact-SQL seguente:
SELECT * FROM sys.fulltext_languages
Se si aggiunge, rimuove o modifica un word breaker, è necessario aggiornare l'elenco degli identificatori delle impostazioni locali (LCID) di Microsoft Windows supportati per l'indicizzazione e le query full-text. Per altre informazioni, vedere Visualizzazione o modifica di word breaker e filtri registrati.
Impostazione dell'opzione relativa alla lingua predefinita full-text
Per una versione localizzata di SQL Server, SQL Server programma di installazione imposta l'opzione default full-text language
sulla lingua del server se esiste una corrispondenza appropriata. Per una versione non localizzata di SQL Server, l'opzione default full-text language
è inglese.
Quando si crea o modifica un indice full-text, è possibile specificare una lingua diversa per ogni colonna di indicizzazione full-text. Se per una colonna non è stata specificata alcuna lingua, il valore predefinito è quello dell'opzione di configurazione default full-text language
.
Nota
È necessario che a tutte le colonne elencate in una singola clausola di funzione per query full-text venga applicata la stessa lingua, a meno che nella query l'opzione LANGUAGE non sia specificata. La lingua utilizzata per la colonna indicizzata full-text oggetto della query determina l'analisi linguistica eseguita sugli argomenti dei predicati (CONTAINS e FREETEXT) e delle funzioni (CONTAINSTABLE e FREETEXTTABLE) delle query full-text.
Scelta della lingua per una colonna indicizzata
Quando si crea un indice full-text, è consigliabile specificare una lingua per ogni colonna indicizzata. Se non viene specificata alcuna lingua per una colonna, viene utilizzata quella predefinita di sistema. La lingua di una colonna determina il word breaker e lo stemmer utilizzati per l'indicizzazione di quella colonna. Anche il file del thesaurus di quella lingua verrà utilizzato dalle query full-text sulla colonna.
Quando si crea un indice full-text, è necessario considerare alcuni aspetti relativi alla scelta della lingua delle colonne. Tali considerazioni riguardano il modo in cui il testo viene suddiviso in token e quindi indicizzato dal motore di ricerca full-text. Per altre informazioni, vedere Scelta di una lingua durante la creazione di un indice full-text.
Per visualizzare la lingua del word breaker di una colonna
sys.fulltext_index_columns (Transact SQL)
SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;
Come ottenere informazioni sui word breaker
Visualizzazione del risultato della suddivisione in token di una combinazione di word breaker, thesaurus ed elenco di parole non significative
Per restituire informazioni sui word breaker registrati
Risoluzione dei problemi relativi agli errori di timeout del word breaking
Un errore di timeout del word breaking potrebbe verificarsi in diverse situazioni. Per informazioni su queste situazioni e su come rispondere, vedere MSSQLSERVER_30053.
Informazioni sull'impatto dei nuovi word breaker
Ogni versione di SQL Server include in genere nuovi word breaker con regole linguistiche migliori e sono più accurati dei word breaker precedenti. Potenzialmente, i nuovi word breaker potrebbero comportarsi in modo leggermente diverso dai word breaker negli indici full-text importati dalle versioni precedenti di SQL Server. Ciò è significativo se è stato importato un catalogo full-text quando un database è stato aggiornato alla versione corrente di SQL Server. Una o più lingue utilizzate dagli indici full-text nel catalogo full-text potrebbero essere associate ai nuovi word breaker. Per altre informazioni, vedere Aggiornamento della ricerca full-text.
Per un elenco completo di tutti i word breaker, vedere sys.fulltext_languages (Transact-SQL).
Vedere anche
ALTER FULLTEXT INDEX (Transact-SQL)
CREATE FULLTEXT INDEX (Transact-SQL)
sp_fulltext_service (Transact-SQL)
sys.fulltext_languages (Transact-SQL)
Configurare e gestire parole non significative ed elenchi di parole non significative per la ricerca full-text
Aggiornamento della ricerca full-text