Un index en texte intégral est un index spécialisé qui stocke des informations sur des mots (jetons) individuels et leurs localisations dans des champs de texte. Une fois créé, un index en texte intégral permet de rechercher rapidement et efficacement des mots ou expressions spécifiques parmi de grands volumes de texte.
Objectif et avantages des index en texte intégral
L’objectif principal des index en texte intégral est d’améliorer la capacité de recherche et d’extraction de données texte avec rapidité et précision. Voici certains des principaux avantages :
- Recherche de texte efficace : les index en texte intégral peuvent accélérer les recherches dans des champs de texte par rapport aux index attributaires classiques. Ils sont en effet optimisés pour les opérations de recherche textuelle, ce qui évite d’analyser une table entière.
- Fonctionnalités de requête complexe : les index en texte intégral prennent en charge les requêtes complexes, telles que la recherche d’expressions, les recherches de proximité et le classement des résultats par pertinence.
- Performances améliorées : en indexant les données textuelles, les index en texte intégral peuvent considérablement améliorer les performances des opérations de recherche. Cela est particulièrement important pour les jeux de données volumineux dans lesquels les recherches de texte peuvent demander beaucoup de ressources.
- Prise en charge de champs multiples : dans SQL Server, un mêmel index en texte intégral peut inclure plusieurs champs d’une seule table, ce qui permet de réaliser des recherches de texte complètes dans différentes colonnes.
Pour mieux comprendre les avantages des index en texte intégral, prenons l’analogie suivante :
La table des matières d’un livre indique où se trouve chacun des chapitres. Pour localiser le chapitre 7, vous pouvez consulter la table des matières, accéder à la page en question et rechercher ce dont vous avez besoin. Si vous essayez de vous rappeler une citation importante contenant le mot « humanité », sans savoir dans quel chapitre elle se trouve, la table des matières ne vous sera d’aucune utilité. Vous devrez feuilleter toutes les pages pour trouver la citation, sauf si le livre dispose d’un index en texte intégral. Un index en texte intégral liste chaque mot du livre avec les numéros de page. Cela vous permet de rechercher rapidement des mots, tels que mankind, ou des expressions, telles que "one giant leap for mankind".
Vous pouvez utiliser les index en texte intégral pour réaliser des recherches textuelles complètes dans un champ de texte. Plus précisément, les index en texte intégral sont particulièrement utiles dans les cas suivants :
- Recherche de mot unique : recherches portant sur des mots individuels au sein d’un champ de texte, tels que hurricane (ouragan) ou Florida (Floride).
- Recherche d’expression : permet de rechercher une expression, qui est un groupe de mots. Pour réaliser une recherche à l’aide d’une expression, placez le groupe de mots entre guillemets doubles (par exemple, "evacuation routes").
Le scénario suivant est un exemple qui illustre l’utilité des index en texte intégral.
Une compagnie de gaz effectue le suivi des rapports d’inspection et des documents de sécurité concernant son réseau de canalisation. L’application d’un index en texte intégral aux champs de texte d’une géodatabase contenant des rapports d’inspection, des descriptions de sécurité et des journaux de maintenance permet aux recherches en texte intégral de prendre en charge les requêtes sur des expressions comprenant des termes tels que gas leak ou pipeline corrosion, ce qui améliore la vitesse et la précision des contrôles de sécurité et la planification de maintenance.
En savoir plus sur la création d’un réseau de distribution et sur la configuration d’un réseau de distribution de gaz.
Les index en texte intégral sont conçus pour optimiser les fonctions de recherche textuelles dans les bases de données. Contrairement aux index attributaires qui portent sur des colonnes spécifiques et aux index spatiaux qui gèrent les données géographiques, les index en texte intégral optimisent les recherches au sein des champs de texte en indexant chaque mot. Cela permet de réaliser des recherches efficaces, des requêtes complexes portant sur des expressions et renforcent les performances en extrayant les données textuelles pertinentes.
Consultez les index de la géodatabase pour voir une table de comparaison des index attributaires, en texte intégral et spatiaux.
Fonctionnement de l’indexation en texte intégral
Les index en texte intégral sont un outil puissant qui facilite et accélère la recherche parmi de grandes quantités de données textuelles. Une fois qu’un index en texte intégral a été créé sur un champ, des recherches de texte peuvent être utilisées pour rechercher rapidement et efficacement des mots, phrases ou expressions spécifiques dans de grands volumes de texte.
Les recherches textuelles sont disponibles dans diverses parties d’ArcGIS, notamment les suivantes :
- API REST du répertoire ArcGIS Portal : pour interroger les données via les services Web.
- ArcObjects : pour accéder par programmation aux données SIG et les manipuler.
- Fenêtre Locate (Localiser) : dans ArcGIS Pro, la fenêtre Locate (Localiser) permet d’appliquer le mode de recherche de texte intégral, Full Text Starts With (Texte intégral – Commence par) ou Full Text Equals (Texte intégral – Est égal à), au champ sur lequel la recherche doit porter.

Attention :
ArcGIS Pro offre la possibilité de créer un index en texte intégral très basique. La gestion et la personnalisation d’un index en texte intégral doivent s’effectuer manuellement au niveau du SGBD au moyen des outils du SGBD.
Le scénario suivant simule, à un niveau élevé et simplifié, la façon dont un index en texte intégral est créé, stocké et utilisé pour rechercher et extraire des données textuelles avec rapidité et précision.
La table GIS.Storm_Damage_Assessment comporte plusieurs champs attributaires qui détaillent le type, la gravité et la description des dommages signalés par les propriétaires fonciers après le passage récent de plusieurs tempêtes. D’autres champs, non visibles dans cette table, incluent l’adresse et les coordonnées des propriétaires.

En tant qu’agent d’assurance de ces propriétaires fonciers, configurer un index en texte intégral sur le champ Damage _Description vous permet de rechercher rapidement des termes, tels que Gutters, Shingles, Window, Roof ou Leaks, afin que vous puissiez recommander au propriétaire foncier l’entrepreneur le plus approprié à contacter en fonction des dommages subis et des réparations nécessaires.
- Créez un index en texte intégral à l’aide de l’outil Ajouter un index en texte intégral. Dans cet exemple, le nom de la table, GIS.Storm_Damage_Assessment, et le champ contenant les données textuelles à indexer, Damage_Description, ont été spécifiés.

Pour renseigner l’index, il est nécessaire de décomposer le texte dans le champ désigné en termes clés individuels (jetons) en organisant, en suivant puis en réappariant la position exacte de chaque mot dans le champ de texte pour y accéder rapidement.
Étude de cas :
L’illustration ci-après simule à un niveau général et simplifié, la manière dont un index en texte intégral est décomposé en termes clés individuels et comment leurs positions sont réappariées dans le champ de texte.Dans cet exemple, dans la table GIS.Storm_Damage_Assessment, la première valeur attributaire à la ligne 1 sous le champ Damage_Description indique Missing or Lifted Shingles. Dans le cadre de la simulation de la manière dont cet index en texte intégral doit être renseigné, ce texte est décomposé en les termes clés ci-après, classés par ordre alphabétique, et la position exacte à laquelle chaque terme apparaît dans le champ de texte Damage_Description désigné est consignée.
- Missing : apparaît quatre fois, aux lignes 1, 4, 8 et 9
- Lifted : apparaît deux fois, aux lignes 1 et 9
- Shingles : apparaît six fois, aux lignes 1, 3, 4, 5, 8 et 9

L’index fait office de glossaire pour tous les termes clés du champ indexé, en organisant et suivant la position exacte où chaque mot apparaît dans l’index d’origine. Ce processus se poursuit jusqu’à ce que l’ensemble du texte dans le champ désigné ait été décomposé en termes clés, puis organisé et que la position où chaque terme apparaît ait été consignée.
Une fois que l’index en texte intégral a été créé dans le champ Damage_Description, vous pouvez utiliser la fenêtre Locate (Localiser) pour appliquer le mode de recherche de texte intégral Full Text Equals (Texte intégral – Est égal à) au champ Damage_Description.

Pour cet exemple, dans la fenêtre Locate (Localiser), vous pouvez rechercher le mot Shingles.
Sans l’application d’un index en texte intégral, la recherche engendrerait une analyse de la table entière qui prendrait plus de temps. Toutefois, un index en texte intégral ayant été créé sur le champ Damage_Description, à partir de la fenêtre Locate (Localiser), vous pouvez rechercher un mot unique, Shingles, dans ce champ. La fenêtre Locate (Localiser) utilise une recherche de texte intégral pour identifier rapidement le terme Shingles et localise toutes les lignes où se terme clé apparaît dans le champ indexé, comme illustré ci-après.

Les résultats de votre recherche vous permettent d’identifier rapidement les rapports de dommages impliquant des bardeaux de toit pour que le propriétaire foncier puisse contacter l’entrepreneur le plus approprié en fonction des dommages signalés.
Gestion de l’index en texte intégral dans ArcGIS
La manière dont ArcGIS Pro crée les index en texte intégral dépend du type de géodatabase et, dans le cas des géodatabases d’entreprise, varie selon le système de gestion de base de données utilisé. Les deux sections suivantes présentent ces différences de fonctionnalités.
Remarque :
Tenez compte des points suivants si vous utilisez des index en texte intégral :
- Les index en texte intégral ne sont pas pris en charge dans les géodatabases fichier ou dans une géodatabase d’entreprise dans Db2.
- Index unique et index multiples : certains SGDBR peuvent uniquement prendre en charge un seul index en texte intégral par table, tandis que d’autres peuvent en accepter plusieurs.
- Maintenance : les index en texte intégral doivent être gérés par la source de données sous-jacente. Ils sont mis à jour pour refléter les modifications des données, ce qui peut impacter les performances de recherche.
Index en texte intégral dans les géodatabases mobiles
Les index en texte intégral sont pris en charge dans les géodatabases mobiles. Les géodatabases mobiles sont stockées dans une base de données SQLite qui comporte l’extension FTS5 de manière native. L’extension SQLite FTS5 (recherche de texte intégral) est utilisée pour l’indexation en texte intégral dans les géodatabases mobiles. Elle crée des tables virtuelles et une table secondaire complémentaire pour gérer les index en texte intégral. Cela signifie que la géodatabase mobile possède également l’extension FTS5 de manière native.
Index en texte intégral dans les géodatabases d’entreprise
ArcGIS Pro prend en charge les index en texte intégral sur une table ou classe d’entités d’une géodatabase dans chacune des plateformes suivantes de système de gestion de base de données prises en charge, chacune avec des configurations spécifiques :
- Oracle
- Prend en charge les index en texte intégral dans des champs de texte non Unicode.
- Requiert la conversion de champs Unicode au format non Unicode pour l’indexation.
Conseil :
Utilisez l’outil Migrer les champs de texte pour migrer les types de champs de texte éligibles existants vers le format non Unicode. Le jeu de données en entrée doit provenir d’une géodatabase d’entreprise dans Oracle et les types de champs de texte Unicode éligibles qui peuvent être migrés vers un type de champ de texte non Unicode sont notamment les suivants :
- NVARCHAR2 est converti en VARCHAR2.
- NCHAR est converti en VARCHAR2.
- NCLOB est converti en CLOB.
- PostgreSQL
- Prend en charge la création d’un index en texte intégral par champ.
- SQL Server
- La fonction de recherche en texte intégral est un composant facultatif du moteur de base de données SQL Server et elle doit d’abord être activée avant de poursuivre avec les conditions suivantes. Si la fonction de recherche en texte intégral n’a pas déjà été activée sur votre instance SQL Server, vous devez relancer le processus de configuration de SQL Server.
Un catalogue en texte intégral SQL Server est un conteneur virtuel pour un ou plusieurs index en texte intégral. Utilisez SQL Server pour créer au moins un catalogue en texte intégral dans chaque base de données SQL Server où les index en texte intégral seront créés.
Vous pouvez avoir plusieurs catalogues en texte intégral dans chaque base de données, mais un index en texte intégral doit appartenir à un seul et unique catalogue en texte intégral. Vous pouvez spécifier un catalogue en texte intégral par défaut, qui sera utilisé si aucun n’est fourni.
- Chaque utilisateur qui crée des index en texte intégral doit disposer de l’autorisation REFERENCES sur le catalogue en texte intégral auquel l’index appartient.
- SQL Server prend en charge la création d’un index en texte intégral unique par table, qui peut inclure plusieurs champs.
- SAP HANA
- Comme PostgreSQL, prend en charge un index en texte intégral par champ.
Ajouter un index en texte intégral
Pour utiliser l’outil Ajouter un index en texte intégral et ajouter un index en texte intégral aux champs de texte spécifiés afin de prendre en charge la recherche en fonction d’une ou de plusieurs colonnes dans une géodatabase mobile ou d’entreprise, procédez comme suit :
Remarque :
L’outil Ajouter un index en texte intégral n’est pas pris en charge dans les géodatabases fichier ou dans une géodatabase d’entreprise dans Db2.
- Ouvrez l’outil de géotraitement Ajouter un index en texte intégral en accédant à l’onglet Analysis (Analyse) et en cliquant sur Tools (Outils) dans le groupe Geoprocessing (Géotraitement). Vous pouvez également rechercher l’outil dans le jeu d’outils Data Management Tools (Outils de gestion des données) dans la boîte à outils Indexes (Index).

La boîte de dialogue de l’outil de géotraitement Ajouter un index en texte intégral s’ouvre avec les paramètres par défaut.

- Pour Input Table (Table en entrée), dans le menu déroulant, sélectionnez un jeu de données unique ou utilisez le bouton de navigation
pour sélectionner une classe d’entités ou une table à laquelle un index en texte intégral doit être ajouté.Remarque :
En savoir plus sur la gestion de l’index en texte intégral dans ArcGIS.
- Pour Fields To Index (Champs à indexer), sélectionnez un champ unique ou plusieurs champs auxquels un index en texte intégral sera appliqué.

Remarque :
Certaines bases de données prennent uniquement en charge un champ unique pour la création d’un index en texte intégral. La prise en charge de la création d’un index en texte intégral à plusieurs champs varie selon la base de données.
- De plus, le nom de ce paramètre change en fonction de la source de votre Input Table (Table en entrée).
- Full-Text Index Name (Nom de l’index en texte intégral) : indiquez un nom pour l’index à créer. Le paramètre Full-Text Index Name (Nom de l’index en texte intégral) apparaît par défaut.

Remarque :
Pour SQL Server, SQLite et les géodatabases mobiles, le paramètre Full-Text Index Name (Nom de l’index en texte intégral) sera ignoré.
- Full-Text Catalog Name (Nom du catalogue en texte intégral) : sélectionnez le nom du catalogue en texte intégral SQL Server à utiliser pour le paramètre Full-Text Catalog Name (Nom du catalogue en texte intégral). L’option Full-Text Catalog Name (Nom du catalogue en texte intégral) est disponible uniquement pour SQL Server.

Remarque :
Si aucune valeur n’est fournie pour Full-Text Catalog Name (Nom du catalogue en texte intégral), l’outil tente d’utiliser le catalogue en texte intégral défini par défaut pour la base de données, s’il est accessible. Sélectionnez sinon un catalogue en texte intégral dans la liste déroulante. La liste déroulante inclut tous les catalogues en texte intégral auxquels l’utilisateur connecté est habilité à se connecter.
- Full-Text Index Name (Nom de l’index en texte intégral) : indiquez un nom pour l’index à créer. Le paramètre Full-Text Index Name (Nom de l’index en texte intégral) apparaît par défaut.
- Cliquez sur Run (Exécuter) pour ajouter un index en texte intégral à un champ.
Remarque :
Vous pouvez également sélectionner Schedule Run (Planifier l’exécution) pour exécuter l’outil à une heure ultérieure avec une récurrence facultative en utilisant le menu déroulant situé en regard du bouton Run (Exécuter).

En savoir plus sur la planification des outils de géotraitement
Une fois que l’outil Add Full-Text Index (Ajouter un index en texte intégral) a été exécuté, dans la boîte de dialogue des propriétés de votre table ou classe d’entités, sous l’onglet Indexes (Index), le paramètre Full-Text Index Name (Nom de l’index en texte intégral) apparaît.
Quand mettre à jour un index en texte intégral
Les index en texte intégral sont gérés par les SGBDR et doivent être régulièrement mis à jour pour répercuter les modifications appliquées aux données, ce qui garantit que les recherches renvoient des résultats exacts. La fréquence des mises à jour d’un index en texte intégral dépend du volume de modifications apportées aux données, ainsi que de la configuration de votre base de données. La gestion, la mise à jour et la recréation des index en texte intégral dans une géodatabase d’entreprise s’effectuent manuellement au niveau du SGBD au moyen des outils du SGBD.
Pour les géodatabases mobiles, l’extension SQLite FTS5 (recherche de texte intégral) permet des recherches de texte intégral efficaces en créant une table virtuelle mise à jour automatiquement lorsque les données sous-jacentes sont modifiées, pour éviter le recours à la régénération manuelle des index.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?