Condividi tramite


Modifiche di rilievo alla ricerca full-text

In questo argomento vengono descritte le modifiche di rilievo apportate alla ricerca full-text. Tali modifiche potrebbero interrompere il funzionamento di applicazioni, funzionalità o script basati su versioni precedenti di SQL Server. È possibile che questi problemi si verifichino quando viene effettuato un aggiornamento. Per ulteriori informazioni, vedere Utilizzare Preparazione aggiornamento per preparare gli aggiornamenti.

Modifiche di rilievo nella ricerca full-text in SQL Server 2012

Regole di confronto modificate per la colonna name in sys.fulltext_languages

Le regole di confronto della colonna name nella vista del catalogo sys.fulltext_languages (Transact-SQL) sono state modificate dalle regole di confronto fisse del database Resource alle regole di confronto predefinite selezionate per l'istanza di SQL Server. Questa modifica consente di confrontare i valori nella colonna name quando si crea un join della vista sys.syslanguages (Transact-SQL) con sys.fulltext_languages. Ad esempio, è possibile eseguire una query per tutti i database dove l'opzione di configurazione full-text language è diversa dal linguaggio di database predefinito.

Modifiche di rilievo nella ricerca full-text in SQL Server 2008

Le modifiche di rilievo riportate di seguito vengono applicate alla ricerca full-text tra SQL Server 2005 e SQL Server 2008 e versioni successive.

Funzionalità

Scenario

SQL Server 2005

SQL Server 2008 e versioni successive

CONTAINSTABLE con tipi definiti dall'utente (UDT)

La chiave full-text è un tipo definito dall'utente (UDT) di SQL Server, ad esempio MyType = char(1).

La chiave restituita è del tipo assegnato al tipo definito dall'utente (UDT).

Nell'esempio corrisponde a char(1).

La chiave restituita è del tipo definito dall'utente (UDT). Nell'esempio corrisponde a MyType.

Parametro top_n_by_rank (delle istruzioni Transact-SQL CONTAINSTABLE e FREETEXTTABLE)

Query top_n_by_rank che utilizzano 0 come parametro.

Ha esito negativo e viene restituito un messaggio di errore indicante che è necessario utilizzare un valore maggiore di zero.

Ha esito positivo e vengono restituite zero righe.

CONTAINSTABLE e ItemCount

Eliminare righe dalla tabella di base prima che vengano inserite modifiche in MSSearch.

Viene restituito un record fantasma da CONTAINSTABLE. ItemCount non viene modificato.

Non viene restituito alcun record fantasma da CONTAINSTABLE.

ItemCount

Nella tabella sono contenuti documenti o colonne del tipo Null.

Oltre ai documenti indicizzati, nel valore ItemCount vengono conteggiati documenti Null o associati a tipi Null.

Nel valore ItemCount vengono conteggiati solo i documenti indicizzati.

ItemCount di catalogo

Colonna BLOB con estensione NULL.

È conteggiata in ItemCount di catalogo.

Non è conteggiata in ItemCount di catalogo.

UniqueKeyCount

Esecuzione di una query su un conteggio di chiavi univoche da un catalogo, ad esempio due tabelle, tabella1 e tabella2, ciascuna con tre parole, parola1, parola2 e parola3.

UniqueKeyCount = 9. Nella tabella seguente viene descritto il modo in cui si ottiene questo valore:

tabella1 = 3

EOF per indice full-text di tabella1 = 1

tabella2 = 3

EOF per indice full-text di tabella2 = 1

Catalogo full-text = 1

Per ogni tabella UniqueKeyCount è il numero di parole chiave DISTINCT + 1 (0xFF). NON considera le stesse parole in > 1 doc come nuova chiave univoca.

Per un catalogo, UniqueKeyCount è la somma di UniqueKeyCount di ognuna delle tabelle nel catalogo. Parole identiche di tabelle diverse vengono considerate chiavi univoche. In questo caso il conteggio di chiavi univoche è 8.

Opzione a livello di server precompute rank

Ottimizzazione delle prestazioni delle query FREETEXTTABLE.

Se l'opzione è impostata su 1, le query FREETEXTTABLE specificate con top_n_by_rank utilizzano i dati precalcolati relativi alla pertinenza archiviati nei cataloghi full-text.

Non è supportata.

sp_fulltext_pendingchanges quando si aggiorna una colonna chiave

Aggiornare la colonna chiave full-text in una riga di una tabella a 2 righe ed eseguire sp_fulltext_pendingchanges.

Vengono visualizzate entrambe le righe.

Viene visualizzata solo una riga.

Funzioni inline

Funzioni inline con un operatore full-text

Viene restituito un messaggio di errore.

Vengono restituite le righe pertinenti.

sp_fulltext_database

Abilitare o disabilitare la ricerca full-text utilizzando sp_fulltext_database.

Non viene restituito alcun risultato per le query full-text. Se la funzionalità full-text è disabilitata per il database, le operazioni full-text non sono consentite.

Restituisce risultati nelle query full-text e le operazioni full-text sono consentite, anche se la funzionalità full-text è disabilitata per il database.

Parole non significative specifiche delle impostazioni locali

Query in varianti specifichedelle impostazioni locali di una lingua padre, ad esempio Francese (Belgio) e Francese (Canada).

Le query in varianti specifichedelle impostazioni locali vengono elaborate dai componenti (word breaker, stemmer e parole non significative) della lingua padre. I componenti della lingua Francese (Francia), ad esempio, vengono utilizzati per l'analisi della lingua Francese (Belgio).

È necessario aggiungere in modo esplicito parole non significative per ogni identificatore delle impostazioni locali (LCID). È necessario, ad esempio, specificare un LCID per Belgio, Canada e Francia.

Processo di stemming del thesaurus

Utilizzo del thesaurus e di forme flessive (stemming).

Viene eseguito lo stemming automatico di una parola del thesaurus in seguito all'espansione.

Se si desidera la forma flessiva nell'espansione, è necessario aggiungerla in modo esplicito.

Percorso e filegroup del catalogo full-text

Utilizzo di cataloghi full-text.

Ogni catalogo full-text in cui è presente un percorso fisico, appartiene a un filegroup. e viene considerato un file di database.

Un catalogo full-text è un oggetto virtuale e non appartiene ad alcun filegroup. Un catalogo full-text è un concetto logico che fa riferimento a un gruppo di indici full-text.

[!NOTA]

Le istruzioni DDL Transact-SQL di SQL Server 2005 che specificano cataloghi full-text funzionano correttamente.

sys.fulltext_catalogs

Utilizzo di path, data_space_id e file_id nella vista del catalogo.

Queste colonne restituiscono un valore specifico.

Queste colonne restituiscono NULL perché il catalogo full-text non si trova più nel file system.

sys.sysfulltextcatalogs

Utilizzo della colonna path di questa tabella di sistema deprecata.

Restituisce il percorso del file system del catalogo full-text.

Restituisce NULL perché il catalogo full-text non si trova più nel file system.

sp_help_fulltext_catalogs

sp_help_fulltext_catalogs_cursor

Utilizzo della colonna PATH di queste stored procedure deprecate.

Restituisce il percorso del file system del catalogo full-text.

Restituisce NULL perché il catalogo full-text non si trova più nel file system.

sp_help_fulltext_catalog_components

Utilizzo di sp_help_fulltext_catalog_components di questa stored procedure.

Viene restituisce un elenco di tutti i componenti (filtri, word breaker e gestori di protocollo) utilizzati per tutti i cataloghi full-text nel database corrente.

Vengono restituite righe vuote.

DATABASEPROPERTYEX

Utilizzo della proprietà IsFullTextEnabled.

L'impostazione IsFullTextEnabled indica se la ricerca full-text è abilitata in un database specifico.

Il valore di questa colonna non ha alcun effetto. I database utente sono sempre abilitati per la ricerca full-text.

Vedere anche

Concetti

Differenze di comportamento nella ricerca full-text

Ricerca full-text (SQL Server)