Modifiche di rilievo apportate alla ricerca full-text in SQL Server 2008
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 eseguito un aggiornamento. Per ulteriori informazioni, vedere Utilizzo di Preparazione aggiornamento per preparare gli aggiornamenti.
Modifiche di rilievo
Di seguito vengono indicate le modifiche di rilievo apportate alla ricerca full-text in SQL Server 2008.
Funzionalità |
Scenario |
SQL Server 2005 |
SQL Server 2008 |
---|---|---|---|
CONTAINSTABLE con tipi definiti dall'utente (UDT) |
La chiave full-text è un tipo definito dall'utente di SQL Server, ad esempio MyType = char(1). |
La chiave restituita è del tipo assegnato al tipo definito dall'utente. Nell'esempio corrisponde a char(1). |
La chiave restituita è del tipo definito dall'utente. 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 restituisce un messaggio di errore indicante che è necessario utilizzare un valore maggiore di zero. |
Ha esito positivo e restituisce zero righe. |
CONTAINSTABLE e ItemCount |
Eliminare righe dalla tabella di base prima che vengano inserite modifiche in MSSearch. |
CONTAINSTABLE restituisce un record fantasma. ItemCount non viene modificato. |
CONTAINSTABLE non restituisce alcun record fantasma. |
FREETEXT o FREETEXTTABLE |
Ricerca di una frase esatta. |
Se la stringa di ricerca (freetext_string) è racchiusa tra virgolette doppie, le stringhe corrispondenti non vengono sottoposte a stemming e thesaurus. Vengono restituite solo corrispondenze esatte come nella ricerca di una frase. Se, ad esempio, si specifica "spedizioni rapide" in un predicato FREETEXT, vengono restituite solo le righe che contengono "spedizioni rapide". Non viene restituita la frase "spedizione rapida pacchetto". |
Le ricerche di frasi non sono più consentite da FREETEXT e FREETEXTTABLE, che eseguono lo stemming e il thesaurus delle corrispondenze esatte indipendentemente dal fatto che la stringa di ricerca sia racchiusa tra virgolette singole o doppie. Se, ad esempio, si cerca "spedizioni rapide", vengono restituiti sia "spedizioni rapide" che "spedizione rapida pacchetto". Per eseguire la ricerca di una frase, vedere CONTAINS o CONTAINSTABLE. |
ItemCount |
La tabella contiene 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. |
Attivare o disattivare la ricerca full-text utilizzando sp_fulltext_database. |
Non viene restituito alcun risultato per le query full-text. Se la funzionalità full-text è disattivata 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 è disattivata 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 dispone di 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.
|
Utilizzo del percorso, di data_space_id e di 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. |
|
Utilizzo della colonna percorso di questa tabella di sistema obsoleta. |
Restituisce il percorso del file system del catalogo full-text. |
Restituisce NULL perché il catalogo full-text non si trova più nel file system. |
|
Utilizzo della colonna PATH di queste stored procedure obsolete. |
Restituisce il percorso del file system del catalogo full-text. |
Restituisce NULL perché il catalogo full-text non si trova più nel file system. |
|
Utilizzo di sp_help_fulltext_catalog_components di questa stored procedure. |
Restituisce l'elenco di tutti i componenti (filtri, word breaker e gestori di protocollo) utilizzati per tutti i cataloghi full-text nel database corrente. |
Restituisce righe vuote. |
|
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. |
Cronologia modifiche
Aggiornamento del contenuto |
---|
Aggiunta alla tabella di una riga relativa alla funzionalità FREETEXT. |