Configurazione del thesaurus

In SQL Server tramite le query full-text è possibile eseguire la ricerca di sinonimi di termini specificati dall'utente tramite l'utilizzo di un thesaurus. In un thesaurus di SQL Server viene definito un set di sinonimi per una lingua specifica. Gli amministratori di sistema possono definire due forme di sinonimi, i set di espansione e i set di sostituzione. Sviluppando un thesaurus basato sui dati full-text in uso, è possibile ampliare in modo efficace l'ambito delle query full-text su tali dati. La corrispondenza con il thesaurus si verifica solo per query CONTAINS e CONTAINSTABLE che specificano la clausola FORMSOF THESAURUS e per le query FREETEXT e FREETEXTABLE.

Prima che le query di ricerca full-text nell'istanza del server siano in grado di eseguire la ricerca di sinonimi in una determinata lingua, è necessario definire mapping del thesaurus (sinonimi) per tale lingua. È necessario configurare manualmente ogni thesaurus per definire gli elementi seguenti:

  • Impostazione dei segni diacritici

    Per un determinato thesaurus, tutti i criteri di ricerca supportano o non supportano la distinzione relativa ai segni diacritici come la tilde (~), l'accento acuto (´) o l'umlaut (¨), ovvero supportano la distinzione tra caratteri accentati e non accentati o non supportano la distinzione tra caratteri accentati e non accentati. Si supponga, ad esempio, di specificare la sostituzione del criterio "café" con altri criteri in una query di ricerca full-text. Se il thesaurus non supporta la distinzione tra caratteri accentati e non accentati, tramite la ricerca full-text verranno sostituiti i criteri "café" e "cafe". Se il thesaurus supporta la distinzione tra caratteri accentati e non accentati, tramite la ricerca full-text verrà sostituito solo il criterio "café". Per impostazione predefinita, un thesaurus non supporta la distinzione tra caratteri accentati e non accentati.

    Nota

    Per ulteriori informazioni sui segni diacritici, vedere Segno diacritico nell'enciclopedia Encarta di MSN.

  • Set di espansione

    Un set di espansione contiene un gruppo di sinonimi, ad esempio "writer", "author" e "journalist", che vengono sostituiti gli uni con gli altri da una query full-text. Le query che contengono una corrispondenza per uno dei sinonimi in un set di espansione vengono espanse per includere ogni altro sinonimo nel set di espansione stesso.

    Per ulteriori informazioni, vedere "Struttura XML di un set di espansione" più avanti in questo argomento.

  • Set di sostituzione

    Un set di sostituzione include un criterio di testo da sostituire con parole specifiche. Vedere, ad esempio, la sezione "Struttura XML di un set di sostituzione" più avanti in questo argomento.

Nota

Per restrizioni e indicazioni relative a un file del thesaurus, vedere Procedura: Modifica di un file del thesaurus (ricerca full-text).

In SQL Server è disponibile un set di file XML del thesaurus, uno per ogni lingua supportata. Tali file sono essenzialmente vuoti e contengono solo la struttura XML di livello principale comune a tutti i thesaurus di SQL Server e un thesaurus di esempio costituito da commenti.

In questo argomento sono incluse informazioni che consentono di eseguire questa attività, come indicato di seguito:

  • Contenuto iniziale dei file del thesaurus

  • Percorso dei file del thesaurus

  • Modalità di utilizzo dei file del thesaurus nelle query

  • Informazioni sulla struttura di un file del thesaurus

  • Utilizzo dei file del thesaurus

Contenuto iniziale dei file del thesaurus

Tutti i file del thesaurus disponibili in SQL Server 2008 contengono il codice XML seguente:

<XML ID="Microsoft Search Thesaurus">

<!--  Commented out

    <thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
        <expansion>
            <sub>Internet Explorer</sub>
            <sub>IE</sub>
            <sub>IE5</sub>
        </expansion>
        <replacement>
            <pat>NT5</pat>
            <pat>W2K</pat>
            <sub>Windows 2000</sub>
        </replacement>
        <expansion>
            <sub>run</sub>
            <sub>jog</sub>
        </expansion>
    </thesaurus>
-->
</XML>

[Torna all'inizio]

Percorso dei file del thesaurus

Il percorso predefinito dei file del thesaurus è il seguente:

<percorso_file_dati_SQL_Server>\MSSQL10_50.MSSQLSERVER\MSSQL\FTDATA\

Tale percorso predefinito contiene i file seguenti:

  • File del thesaurus specifici della lingua

    Durante l'installazione, nel percorso indicato in precedenza vengono installati file del thesaurus vuoti, uno per ogni lingua supportata. Tali file possono essere personalizzati da un amministratore di sistema.

    Per i nomi predefiniti dei file del thesaurus viene utilizzato il formato seguente:

    ‘ts’ + <abbreviazione lingua di tre lettere> + '.xml'

    Il nome del file del thesaurus per una lingua specifica è indicato nel valore del Registro di sistema HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<nome-istanza>\MSSearch\<abbrev-lingua>.

  • File del thesaurus globale

    File del thesaurus globale vuoto denominato tsGlobal.xml.

È possibile modificare il percorso e il nome di un file del thesaurus modificando la relativa chiave del Registro di sistema. Per ogni lingua, il percorso del file del thesaurus viene specificato nel seguente valore del Registro di sistema:

HKLM/SOFTWARE/Microsoft/Microsoft SQL Server/<nome istanza>/MSSearch/Language/<abbreviazione-lingua>/TsaurusFile

Il file del thesaurus globale corrisponde alla lingua neutra con LCID 0. Questo valore può essere modificato solo dagli amministratori.

[Torna all'inizio]

Modalità di utilizzo dei file del thesaurus nelle query

Una query sul thesaurus utilizza sia un thesaurus specifico della lingua sia un thesaurus globale. La query esegue innanzitutto la ricerca in un file specifico della lingua e lo carica per l'elaborazione, a meno che non sia già caricato. La query viene quindi espansa per includere i sinonimi specifici della lingua indicati dalle regole del set di espansione e del set di sostituzione nel file del thesaurus. Questi passaggi vengono quindi ripetuti per il thesaurus globale. Se, tuttavia, nel file del thesaurus specifico della lingua è già stata individuata una corrispondenza per un termine, tale termine non può essere considerato valido per la corrispondenza nel thesaurus globale.

[Torna all'inizio]

Informazioni sulla struttura di un file del thesaurus

Ogni file del thesaurus definisce un contenitore XML, il cui ID è Microsoft Search Thesaurus, e un commento <!-- … --> che contiene un thesaurus di esempio. Il thesaurus è definito in un elemento <thesaurus> contenente esempi degli elementi figlio che definiscono l'impostazione dei segni diacritici, i set di espansione e i set di sostituzione, come indicato di seguito:

  • Struttura XML dell'impostazione dei segni diacritici

    L'impostazione dei segni diacritici di un thesaurus è specificata in un singolo elemento <diacritics_sensitive>, che contiene un valore intero che determina il supporto della distinzione tra caratteri accentati e non accentati, come indicato di seguito:

    Impostazione dei segni diacritici

    Valore

    XML

    Nessuna distinzione caratteri accentati/non accentati

    0

    <diacritics_sensitive>0</diacritics_sensitive>

    Distinzione caratteri accentati/non accentati

    1

    <diacritics_sensitive>1</diacritics_sensitive>

    Nota

    Questa impostazione può essere utilizzata una sola volta nel file e viene applicata a tutti i criteri di ricerca contenuti nel file stesso. L'impostazione non può essere specificata per singoli criteri.

  • Struttura XML di un set di espansione

    Ogni set di espansione è racchiuso in un elemento <expansion>. All'interno di questo elemento è possibile specificare una o più sostituzioni in un elemento <sub>. Nel set di espansione è possibile specificare un gruppo di sostituzioni che sono sinonimi una dell'altra.

    È possibile, ad esempio, modificare la sezione di espansione in modo che le sostituzioni "writer", "author" e "journalist" vengano considerate sinonimi. Le query di ricerca full-text che contengono corrispondenze in una sostituzione vengono espanse per includere tutte le altre sostituzioni specificate nel set di espansione. Di conseguenza, quando nell'esempio precedente si esegue una query FORMS OF THESAURUS o FREETEXT per la parola "author", vengono restituiti anche i risultati di ricerca contenenti le parole "writer" e "journalist".

    La sezione del set di espansione dell'esempio precedente sarà la seguente:

     <expansion>
             <sub>writer</sub>
             <sub>author</sub>
             <sub>journalist</sub>
     </expansion>
    
  • Struttura XML di un set di sostituzione

    Ogni set di sostituzione è racchiuso in un elemento <replacement>. All'interno di questo elemento è possibile specificare uno o più criteri in un elemento <pat> e zero o più sostituzioni in elementi <sub>, uno per sinonimo. È possibile specificare un criterio da sostituire con un set di sostituzione. I criteri e le sostituzioni possono contenere una parola o una sequenza di parole. Se non viene specificata alcuna sostituzione per un criterio, questo verrà rimosso dalla query dell'utente.

    Si supponga, ad esempio, di voler eseguire query per sostituire il criterio "W2K" con "Windows 2000" o "XP". Se si esegue una query full-text per "W2K", verranno restituiti solo i risultati di ricerca contenenti le sostituzioni "Windows 2000" o "XP", ma non quelli contenenti "W2K". Questo accade perché "W2K" è stato "sostituito" con "Windows 2000" e "XP".

    La sezione del set di sostituzione dell'esempio sopra descritto sarebbe:

     <replacement>
             <pat>W2K</pat>
             <sub>Windows 2000</sub>
             <sub>XP</sub>
     </replacement>
    

    Se sono presenti due set di sostituzione con criteri di testo simili da associare, il più lungo dei due ha la precedenza. Se, ad esempio, si esegue una query FORMS OF THESAURUS per "Internet Explorer online community" e sono presenti i set di sostituzione indicati di seguito, "Internet Explorer" ha la precedenza su "Internet". La query verrà pertanto elaborata come "IE online community" o "IE 5 online community".

    <replacement>
             <pat>Internet</pat>
             <sub>intranet</sub>
    </replacement>
    

    e

    <replacement>
             <pat>Internet Explorer</pat>
             <sub>IE</sub>
             <sub>IE 5</sub>
    </replacement>
    

[Torna all'inizio]

Utilizzo dei file del thesaurus

Per modificare un file del thesaurus

Per caricare un file del thesaurus aggiornato

Per visualizzare il risultato della suddivisione in token di una combinazione di word breaker, thesaurus ed elenchi di parole non significative