| Concept ACE | |
Il vous est possible d’utiliser toute la richesse syntaxique du moteur de recherche textuelle d’Oracle Text (option proposée lors de l’installation d’Oracle) dans certaines fonctions d’ACE.
Cet outil permet en effet d’indexer, de rechercher et d’analyser du texte et des documents contenus dans les tables d’une base de données Oracle. Grâce à sa puissance syntaxique (mot-clé, caractère de remplacement, opérateur logique, …), Oracle Text est capable d’effectuer une analyse sémantique de la chaîne de caractères saisie pour restituer les résultats les plus proches, avec un niveau très fin de détail.
Le moteur de recherche s’apparente fortement, d’un point de vue de la syntaxe, aux moteurs de recherche utilisés par Internet (Google, Yahoo …). Il dispose en outre de fonctionnalités pour la gestion d’un ensemble de documents multilingues.
|
|
Cette fonctionnalité n’est accessible qu’en mode web au niveau de la recherche, dans les fonctions suivantes : |
Le type de recherche Oracle Text ne se substitue pas à la recherche classique ou multicritères, mais la complète. |
|
|
Pour mettre en place cette fonctionnalité dans les fonctions web, consultez le « Guide de mise en oeuvre Oracle Text ». |
La mise en œuvre d’Oracle Text ne nécessite aucune modification du fichier de configuration. En effet, le paramétrage s’active automatiquement dès qu’Oracle Text est installé, la procédure lancée et les statistiques chargées.
L’Administration d’Oracle Text est intégrée dans Oracle Enterprise Manager.
Le fonctionnement est basé sur des indexes spécifiques à Oracle Text. Chacun des mots constituant le champ de recherche est enregistré dans le format spécifié par le contexte d’index.
Les tables permettant de stocker les informations au format Oracle Text sont constituées du nom de la table de base, suffixée par « _REC » (pour « RECherche »).
Exemple : table « PRO_REC » pour les produits ou « TIE_REC » pour les tiers.
Les champs contenus dans ces tables sont systématiquement :
Recherche « plain text » sur la table des produits : « PRO_REC »
codsoc : type integer,
texte : type VARCHAR2(2000).
Recherche « plain text » sur la table des tiers : « TIE_REC »
Le stockage sur le champ texte ne doit pas dépasser 2000 caractères pour les produits. Mais selon votre contexte et votre activité, il reste possible d’augmenter cette limite dans la limite de 4000 caractères (limite fixée par Oracle).
Chacune de ces tables doit avoir sa propre clé primaire de la même manière que la table « standard». Par exemple, pour la table PRO, la clé primaire est définie par le couple de champs (codsoc, codpro).
Le champ « texte » est la concaténation des champs (séparés par des espaces) des différentes tables sur lesquelles on souhaite effectuer la recherche. L’alimentation de ce champ doit donc être réalisée dans la limite de sa définition en longueur (donc 2000 caractères en standard).
Alimentation des tables de recherche
Des procédures (voir documentation UPRC) en PL/SQL permettent d’alimenter les tables dédiées à ces recherches. Le PL/SQL a en effet l’avantage d’être très connu et facilement adaptable sur site.
Mais il reste possible d’alimenter les tables de recherche par d’autre moyens (Java, SQL*Loader …).
Oracle Text peut être implémenté au niveau de la recherche de produits, de clients ou encore de fournisseurs. Comme les tables correspondantes peuvent être très volumineuses, il devient en effet intéressant d’effectuer des recherches aussi bien sur des informations de la table principale que sur des informations enregistrées dans les tables secondaires.
Ces recherches s’appliquent surtout pour des champs de type « Nom », « Libellé », « Description » ou encore « Commentaire ».
Pour exemple, Oracle text permet, avec la même requête, de chercher une information aussi bien parmi les libellés des produits que parmi le texte libre associé.
| Syntaxe | Caractère | Fonction |
| * | Astérisque |
Remplace une chaîne d’un ou plusieurs caractères. |
| - | Tiret |
Exclut le mot de la recherche |
| « » | Guillemets |
Recherchent exactement la chaîne de caractères saisie. |
| & |
Et commercial (ou un espace) |
Applique l’opérateur logique «ET» entre deux opérandes. |
| | | Pipe |
Applique l’opérateur logique «OU» entre deux opérandes. |
| () | Parenthèses |
Regroupent les opérandes entre deux opérateurs logiques. |
| ! | Point d’exclamation |
Effectue une recherche phonétique. |
| ? | Point d’interrogation |
Effectue une recherche syntaxique. |
Les éléments de ce tableau sont décrits ci-après par des exemples.
Il est possible de paramétrer Oracle text pour que la recherche soit indifférente à l’accentuation, à la casse (minuscules/majuscules), au séparateur de mots …
Exemple :
Une recherche parmi les fournisseurs avec les valeurs suivantes aboutira au même résultat :
Le caractère « * » (astérisque) remplace une chaîne d’un ou plusieurs caractères.
Exemple :
Le résultat de cette recherche parmi les fournisseurs fournira par exemple tous les fournisseurs dont le nom commence par le mot « Verdiè ».
Le caractère « - » (tiret) permet d’exclure un mot de la recherche.
Exemple :
Le résultat de cette recherche parmi les clients fournira par exemple tous les clients dont le nom est « Deconninck » mais qui ne sont pas grossistes.
Les guillemets (« ») permettent de rechercher la chaîne de caractères exacte.
Exemple :
Le résultat de cette recherche parmi les clients fournira tous les clients dont un des libellés contient exactement « Grossiste en produits de nettoyage ».
Il est également possible d’exploiter une syntaxe plus évoluée, basée sur les opérateurs logique « Ou » et « Et ».
Le caractère « | » (pipe), situé sur votre clavier à droite du tiret, est utilisé pour appliquer l’opérateur logique «OU» entre les deux opérandes.
L’espace et le caractère « & » correspondent à l’opérateur logique «ET» et sont strictement similaires.
Les parenthèses permettent de regrouper les opérandes entre deux opérateurs.
Exemples :
Le résultat de cette recherche parmi les clients fournira tous les clients « Verdière » ou les clients exerçant le métier de « caviste » et commercialisant du « whisky ».
Le résultat de cette recherche parmi les produits fournira par exemple toutes les perceuses à percussion ou tous les décapeurs thermiques.
Verd* cav*
Le résultat de cette recherche fournira tous les libellés contenant le début du mot « Verd » et contenant le début du mot « cav ».
Verdiè* | caviste
Le résultat de cette recherche fournira tous les libellés contenant le début du mot « Verdiè » ou contenant le mot « caviste ».
En plus des recherches décrites ci-dessus, Oracle text vous permet de réaliser des recherches :
Le point d’interrogation permet d’effectuer la recherche syntaxique (tolérance aux fautes d'orthographe et de syntaxe).
? recherche syntaxique ?dekapeur va retrouver des décapeurs.
Exemples :
Le résultat de cette recherche fournira aussi les clients qui portent le nom « Deconnynck ».
La plus intéressante est évidemment la recherche phonétique, en particulier pour des recherches de tiers. En effet, ces mécanismes de recherche portent sur la consonance des mots. Ils sont en général utilisés dans de très grandes bases de données pour lesquelles la recherche approchée d’un nom peut être d’une très grande utilité.
Exemples :
Le résultat de cette recherche fournira aussi les clients qui portent le nom « Mauffait ».