CREATE FULLTEXT CATALOG (Transact-SQL)

Crée un catalogue de texte intégral pour une base de données. Ce catalogue peut avoir plusieurs index de texte intégral, mais ce type d'index ne peut faire partie que d'un catalogue de texte intégral. Chaque base de données peut contenir plusieurs catalogues de texte intégral ou n'en contenir aucun.

Il est impossible de créer des catalogues de texte intégral dans les bases de données master, model ou tempdb.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

CREATE FULLTEXT CATALOG catalog_name
     [ON FILEGROUP filegroup ]
     [IN PATH 'rootpath']
     [WITH <catalog_option>]
     [AS DEFAULT]
     [AUTHORIZATION owner_name ]

<catalog_option>::=
     ACCENT_SENSITIVITY = {ON|OFF}

Arguments

  • catalog_name
    Nom du nouveau catalogue. Les catalogues doivent se différencier par des noms uniques dans la base de données active. De même, le nom du fichier correspondant au catalogue de texte intégral (voir ON FILEGROUP) doit être unique parmi tous les autres fichiers de la base de données. Si le nom du catalogue est déjà utilisé par un autre catalogue de la base de données, SQL Server renvoie une erreur.

    Le nom du catalogue ne doit pas dépasser 120 caractères.

  • ON FILEGROUP 'filegroup'
    Nom du groupe de fichiers SQL Server dont le nouveau catalogue fera partie. Si le groupe de fichiers n'est pas spécifié, le nouveau catalogue est intégré au groupe de fichiers par défaut qui est utilisé pour tous les catalogues de texte intégral. Il s'agit du groupe de fichiers principal de la base de données. Nous vous recommandons de placer les catalogues de texte intégral dans un groupe de fichiers secondaire. Cela vous permet d'effectuer des opérations de sauvegarde et de restauration de groupes de fichiers distinctes pour les catalogues de texte intégral par rapport aux fichiers journaux et de données. Qui plus est, en plaçant les catalogues de texte intégral dans un groupe de fichiers secondaire, vous pouvez restaurer un catalogue de texte intégral en ligne.

    Le groupe de fichiers à partir duquel le catalogue de texte intégral est créé doit contenir au moins un fichier de données disponible qui est utilisé pour les structures internes faisant partie du catalogue de texte intégral. Ce fichier, stocké dans SQL Server, ne doit pas être marqué OFFLINE, ni READONLY.

    Dans un groupe de fichiers, les catalogues sont traités comme des fichiers et leur emplacement physique est indiqué par le chemin d'accès figurant dans sys.master_files. Le nom du fichier créé pour chaque catalogue de texte intégral est construit en ajoutant le préfixe sysft_ au nom du catalogue. Par exemple, si le nom du catalogue est catname, le nom du fichier correspondant à ce catalogue est sysft_catname.

  • IN PATH 'rootpath'
    Emplacement du répertoire racine pour le catalogue. Si l'argument rootpath n'est pas spécifié, le nouveau catalogue est placé dans le répertoire par défaut qui a été défini au moment de l'installation.

    Les catalogues de texte intégral doivent être créés sur un disque dur local associé à une instance de SQL Server. L'argument rootpath ne peut pas correspondre à un chemin d'accès relatif ; il doit se trouver sur un lecteur du même ordinateur. Il est déconseillé de spécifier la racine d'un lecteur (par exemple, « C:\ ») comme emplacement d'un catalogue de texte intégral même si cela est techniquement possible. Les lecteurs réseau, unités amovibles, disquettes et chemins UNC (Universal Naming Convention) ne sont pas pris en charge. Dans un environnement de cluster avec basculement, le chemin d'accès doit se trouver sur le disque partagé dont la ressource SQL Server dépend.

    Si un nom de catalogue de texte intégral existant est spécifié avec un chemin d'accès incorrect, SQL Server renvoie une erreur et ne crée pas de catalogue. Si la valeur rootpath spécifiée n'existe pas, SQL Server renvoie une erreur indiquant que ce chemin d'accès n'existe pas.

    Pour pouvoir réaliser des sauvegardes différentielles, des restaurations et des récupérations d'un catalogue de texte intégral, ce catalogue doit être stocké dans un répertoire de système de fichiers NTFS. Aucun autre système de fichiers ne prend en charge ces opérations.

    Le catalogue de texte intégral sera créé comme répertoire dans le chemin d'accès racine spécifié, le nom du répertoire étant celui du catalogue. Si un répertoire du même nom que celui du catalogue existe déjà, un suffixe est ajouté au nom du catalogue et un nouveau répertoire est créé avec ce nom.

    Ne créez pas des catalogues de texte intégral à la racine d'un disque, par exemple c:\.

  • ACCENT_SENSITIVITY = {ON|OFF}
    Spécifie si le catalogue respecte ou non les accents lors d'une indexation de texte intégral. Si cette propriété est modifiée, l'index doit être reconstitué. Le comportement par défaut est celui qui est spécifié pour les accents dans le classement de base de données. Pour consulter ce classement, utilisez la vue de catalogue sys.databases.

    Pour déterminer si un catalogue de texte intégral respecte ou non les accents, utilisez la fonction FULLTEXTCATALOGPROPERTY avec la valeur de propriété accentsensitivity sur catalog_name. Si la valeur renvoyée est « 1 », le catalogue de texte intégral respecte les accents ; si la valeur est « 0 », il ne les respecte pas.

  • AS DEFAULT
    Spécifie que le catalogue est le catalogue par défaut. Lorsque des index de texte intégral sont créés sans qu'un catalogue de texte intégral soit explicitement spécifié, le catalogue par défaut est utilisé. Si un catalogue de texte intégral est déjà marqué AS DEFAULT, le fait de définir le nouveau catalogue AS DEFAULT le désigne comme catalogue de texte intégral par défaut.
  • AUTHORIZATION owner_name
    Associe le propriétaire du catalogue de texte intégral au nom d'un utilisateur ou d'un rôle de base de données. Si owner_name est un rôle, celui-ci doit être le nom d'un rôle dont l'utilisateur actuel est membre ou bien l'utilisateur qui exécute l'instruction doit être le propriétaire de la base de données ou l'administrateur système.

    Si owner_name est un nom d'utilisateur, ce nom doit être l'un des éléments suivants :

    • le nom de l'utilisateur exécutant l'instruction ;
    • le nom d'un utilisateur pour lequel l'utilisateur exécutant la commande dispose des autorisations d'emprunt d'identité ;
    • l'utilisateur exécutant la commande doit être le propriétaire de la base de données ou l'administrateur système.

    Vous devez aussi accorder à owner_name l'autorisation TAKE OWNERSHIP sur le catalogue de texte intégral spécifié.

Autorisations

L'utilisateur doit disposer de l'autorisation CREATE FULLTEXT CATALOG pour la base de données ou être membre du rôle de base de données fixe db_owner ou db_ddladmin.

Exemple

L'exemple suivant crée un catalogue de texte intégral ainsi qu'un index de texte intégral.

USE AdventureWorks;
GO
CREATE FULLTEXT CATALOG ftCatalog AS DEFAULT;
GO
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume) KEY INDEX PK_JobCandidate_JobCandidateID;
GO

Voir aussi

Référence

ALTER FULLTEXT CATALOG (Transact-SQL)
DROP FULLTEXT CATALOG (Transact-SQL)

Autres ressources

Recherche de texte intégral
Nouveau catalogue de texte intégral (page Général)

Aide et Informations

Assistance sur SQL Server 2005