Considerazioni internazionali per la ricerca full-text

Scelta di una lingua durante la creazione di un indice full-text

Quando si crea un indice full-text, è necessario considerare alcuni aspetti relativi alla scelta della lingua delle colonne. Tali considerazioni dipendono da come il testo viene suddiviso in token e quindi indicizzato da Microsoft Full-Text Engine for SQL Server (MSFTESQL). Un word breaker suddivide in token il testo da indicizzare in base all'inizio e alla fine delle parole. L'inizio e la fine delle parole, in inglese, corrispondono in genere a spazi vuoti o a elementi di punteggiatura. In altre lingue, ad esempio il tedesco, è possibile combinare parole o caratteri. La scelta della lingua a livello di colonna dovrebbe pertanto rappresentare la lingua che si prevede verrà archiviata nelle righe della colonna specifica. In caso di dubbi, è consigliabile in linea generale utilizzare il word breaker neutro che esegue la suddivisione in token esclusivamente basandosi sugli spazi vuoti e la punteggiatura. Un ulteriore vantaggio della scelta della lingua a livello di colonna è lo stemming, definito nelle query full-text come il processo di ricerca di tutte le forme flessive di una parola in una lingua specifica.

Un'altra considerazione relativa alla scelta della lingua riguarda la modalità di rappresentazione dei dati. Ai dati non archiviati nella colonna varbinary(max), non vengono applicati filtri speciali. Il testo, al contrario, viene normalmente passato tramite il componente per l'esecuzione del word breaking così com'è. I word breaker sono concepiti soprattutto per elaborare testo scritto. Ne consegue che, se il testo include un tipo qualsiasi di tag (ad esempio tag HTML) le operazioni di indicizzazione e ricerca potrebbero non essere sufficientemente accurate dal punto di vista linguistico. In tal caso esistono due possibilità. Il metodo preferito consiste semplicemente nell'archiviare i dati di testo nella colonna varbinary(max) e indicare il tipo del documento per consentire l'applicazione del filtro. Se ciò non è possibile, si può considerare l'utilizzo del word breaker neutro ed eventualmente l'aggiunta di dati dei tag (ad esempio "br" in HTML) agli elenchi delle parole non significative.

[!NOTA] Lo stemming basato sulla lingua non viene eseguito se si specifica la lingua neutra.

Supporto linguistico

In Microsoft SQL Server 2005, le query full-text possono utilizzare lingue diverse da quella predefinita per la colonna nella quale cercare dati full-text. Se la lingua è supportata e le relative risorse sono installate, per l'applicazione del word breaking, lo stemming e l'elaborazione del thesaurus e delle parole non significative verrà utilizzata la lingua specificata nella clausola LANGUAGE language_term delle query CONTAINS, CONTAINSTABLE, FREETEXT e FREETEXTTABLE.

Nella tabella seguente vengono descritte le lingue in cui sono archiviati i dati dell'indice full-text. La lingua è basata sull'identificatore internazionale di regole di confronto Unicode selezionato durante l'installazione di Microsoft SQL Server.

Identificatore internazionale di regole di confronto Unicode Lingua per l'archiviazione dei dati full-text

Cinese (Taiwan)

Cinese tradizionale

Punteggiatura cinese

Cinese semplificato

Cinese - Numero tratti

Cinese semplificato

Cinese (Taiwan) - Numero tratti

Cinese tradizionale

Olandese

Olandese

Inglese (Regno Unito)

Inglese (Regno Unito)

Francese

Francese

Unicode generale

Inglese (Stati Uniti)

Tedesco

Tedesco

German phonebook

Tedesco

Italiano

Italiano

Giapponese

Giapponese

Unicode giapponese

Giapponese

Coreano

Coreano

Unicode coreano

Coreano

Spagnolo (Spagna)

Spagnolo

Svedese/finlandese

Svedese

Tutti gli altri valori degli identificatori internazionali di regole di confronto Unicode non inclusi in questo elenco vengono mappati sul word breaker e sullo stemmer della lingua neutra, in cui le parole sono delimitate da spazi vuoti.

[!NOTA] L'impostazione dell'identificatore internazionale di regole di confronto Unicode viene applicata a tutti i tipi di dati che supportano l'indicizzazione full-text (ad esempio char, nchar e così via). Se l'ordinamento di una colonna di tipo char, varchar o text è impostato su una lingua diversa da quella selezionata per l'identificatore internazionale di regole di confronto Unicode, quest'ultimo viene comunque utilizzato durante l'indicizzazione e l'esecuzione di query full-text nelle colonne di tipo char, varchar e text.

Vedere anche

Altre risorse

Concetti di base sulla ricerca full-text
Tipi di dati (Transact-SQL)
CONTAINS (Transact-SQL)
CONTAINSTABLE (Transact-SQL)
FREETEXT (Transact-SQL)
FREETEXTTABLE (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005