Word breaker e stemmer

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 moduli flessionali 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 dei word breaker

Per potere utilizzare i word breaker di una determinata lingua, è necessario registrarli. Per i word breaker registrati, anche le risorse linguistiche associate, ovvero stemmer, parole non significative e thesaurus, risultano disponibili 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, utilizzare 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 ulteriori informazioni, vedere Procedura: Modifica dell'elenco di word breaker e filtri registrati (Transact-SQL).

Con SQL Server 2008 vengono forniti numerosi word breaker con licenza di terze parti. È possibile caricare manualmente altri word breaker e stemmer di terze parti per diverse lingue (danese, polacco e turco). Per ulteriori informazioni, vedere Como carregar separadores de palavras de terceiros licenciados.

Opzione della lingua full-text

Per una versione localizzata di SQL Server, il programma di installazione di SQL Server imposta l'opzione della lingua full-text predefinita sulla lingua del server, se esiste una corrispondenza appropriata. Per le versioni non localizzate di SQL Server, l'opzione default full-text language è impostata sull'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.

Per ulteriori informazioni, vedere Opzione 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 di una lingua durante l'indicizzazione full-text di una colonna

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 ulteriori informazioni, vedere Procedure consigliate per la scelta di una lingua durante la creazione di un indice full-text.

Per visualizzare la lingua del word breaker di una colonna

Influenza dei nuovi word breaker in SQL Server 2008

In SQL Server 2008 sono disponibili word breaker per più di 50 lingue, 23 dei quali sono inclusi anche in SQL Server 2005. Solo i word breaker per inglese, coreano, tailandese e cinese (tutti i tipi) restano invariati. Per altre lingue, in SQL Server 2008 viene introdotta una nuova generazione di word breaker con regole linguistiche migliori e maggiore accuratezza rispetto alle versioni precedenti. È possibile che il comportamento dei nuovi word breaker sia leggermente diverso da quello dei word breaker negli indici full-text SQL Server 2005 importati. Questo aspetto assume particolare significato se un catalogo full-text è stato importato durante l'aggiornamento di un database SQL Server 2005 a SQL Server 2008. Una o più lingue utilizzate dagli indici full-text nel catalogo full-text potrebbero essere associate ai nuovi word breaker. Per ulteriori informazioni, vedere Aggiornamento della ricerca full-text.

Versioni dei word breaker per le lingue supportate in SQL Server 2005

Solo i word breaker per inglese, coreano, tailandese e cinese (tutti i tipi) restano invariati. Nella tabella seguente sono elencati i word breaker disponibili in SQL Server 2005 e viene indicato se sono stati aggiornati in SQL Server 2008. Per un elenco completo di tutti i word breaker disponibili in SQL Server 2008, vedere sys.fulltext_languages (Transact-SQL).

[!NOTA]

Per impostazione predefinita, i word breaker per la maggior parte delle lingue sono registrati. Sempre per impostazione predefinita, tuttavia, diversi word breaker di terze parti concessi in licenza sono disabilitati. Per informazioni su queste lingue e sulla registrazione dei word breaker, vedere Como carregar separadores de palavras de terceiros licenciados.

Lingua

LCID

Word breaker

Brasiliano

1046

Nuovo

Cinese (Hong Kong R.A.S., RPC)

3076

Non modificato

Cinese (Macao)

5124

Non modificato

Cinese (Singapore)

4100

Non modificato

Danese (disabilitato per impostazione predefinita)

1030

Non modificato

Olandese

1043

Nuovo

Inglese

1033

Non modificato

Inglese (Regno Unito)

2057

Non modificato

Francese

1036

Nuovo

Tedesco

1031

Nuovo

Italiano

1040

Nuovo

Giapponese

1041

Nuovo

Coreano

1042

Non modificato

Lingua neutra

0

Nuovo

Polacco (disabilitato per impostazione predefinita)

1045

Non modificato

Portoghese

2070

Nuovo

Russo

1049

Nuovo

Cinese semplificato

2052

Non modificato

Spagnolo

3082

Nuovo

Svedese

1053

Nuovo

Tailandese

1054

Non modificato

Cinese tradizionale

1028

Non modificato

Turco (disabilitato per impostazione predefinita)

1055

Non modificato

Per un elenco completo delle lingue supportate, vedere sys.fulltext_languages (Transact-SQL).

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.

Per 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

Cronologia modifiche

Aggiornamento del contenuto

Aggiornamento della sezione "Registrazione dei word breaker".