Share via


Query di ricerca full-text

Per scrivere query full-text in Microsoft SQL Server 2005, è necessario imparare a utilizzare i predicati Transact-SQL CONTAINS e FREETEXT e le funzioni valutate a livello dei set di righe CONTAINSTABLE e FREETEXTTABLE.

I predicati CONTAINS e FREETEXT possono essere utilizzati solo all'interno di una clausola WHERE di un'istruzione SELECT. Le funzioni valutate a livello dei set di righe CONTAINSTABLE e FREETEXTTABLE possono essere utilizzate nella clausola FROM di un'istruzione SELECT.

Il predicato CONTAINS supporta una sintassi complessa per la ricerca degli elementi seguenti nelle colonne con dati di testo:

  • Una o più parole o frasi specifiche (termine semplice).
    Nella ricerca full-text una parola viene considerata come token. Un token viene identificato da appositi word breaker in base alle regole linguistiche della lingua specificata. Una frase valida può essere formata da più parole con o senza punteggiatura. Ad esempio, "croissant" è una parola, mentre "caffè macchiato" è una frase. Le parole e le frasi di questo tipo vengono definite termini semplici.
  • Le forme flessive di una parola specifica (termine di generazione). Si utilizza in particolare per la lingua inglese.
    È possibile ricercare, ad esempio, la forma flessiva della parola "guida". Se alcune righe della tabella contengono le parole "guida", "guide", "guidare", "guidando" e "guidato", tali parole vengono tutte incluse nel set di risultati in quanto ognuna può essere generata in modo flessivo da "guida".
  • Sinonimi di una parola specifica (thesaurus)
    Se viene aggiunta, ad esempio, una voce quale "{macchina, automobile, camion, furgone}" a un thesaurus, è possibile cercare la forma del thesaurus della parola "macchina". Il set di risultati includerà tutte le righe della tabella in cui viene eseguita la query che contengono le parole "automobile", "camion", "furgone" o "macchina", in quanto ciascuna di queste parole appartiene al set di espansione dei sinonimi relativo alla parola "macchina". Per ulteriori informazioni sulla struttura dei file del thesaurus, vedere Configurazione dei file del thesaurus.
  • Una parola o frase che inizia con il testo specificato (termine di prefisso).
    Nel caso di una frase, ogni parola al suo interno viene considerata un prefisso. Il termine "tras auto*", ad esempio, corrisponde a "trasmissione automatica" e a "trasduttore automatico", ma non a "trasmissione motore automatica".
  • Parole o frasi che utilizzano valori ponderati (termine ponderato).
    Ad esempio, in una query in cui vengono cercati più termini, è possibile assegnare a ogni parola un valore ponderato che ne indica l'importanza in relazione alle altre parole della condizione di ricerca. I risultati di questo tipo di query presentano prima le righe più rilevanti, in base al peso relativo assegnato alle parole della ricerca.
  • Una parola o frase vicina a un'altra parola o frase (termine vicino).
    È possibile, ad esempio, trovare le righe in cui la parola "ghiaccio" è vicina alla parola "hockey" o in cui la frase "pattinaggio su ghiaccio" è vicina alla frase "hockey su ghiaccio".

In un predicato CONTAINS è possibile associare diversi tipi di termine tramite gli operatori booleani AND, OR e AND NOT, ad esempio per trovare tutte le righe che includono la parola "latte" e "formaggio stagionato" nella stessa colonna con indicizzazione full-text. È possibile utilizzare l'operatore AND NOT per escludere termini, ad esempio per specificare "formaggio stagionato" ed escludere "formaggio fresco".

Quando si utilizza il predicato CONTAINS, è importante tenere presente che in SQL Server le parole non significative vengono escluse dai criteri di ricerca. Per parole non significative si intendono parole quali "circa", "con", "devo" e "cui" che possono ricorrere di frequente, ma che non hanno alcuna utilità nella ricerca di testo specifico. Per ulteriori informazioni sulle parole non significative, vedere Parole non significative.

Vedere anche

Concetti

Esecuzione di query su SQL Server tramite la ricerca full-text

Altre risorse

CONTAINS (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005