Oracle Intermedia Text
Recherche sur des chaînes de caractères.
Il peut être utile de faire des recherches dans des données de type texte (VARCHAR2, LONG, CLOB, ...) selon divers critères,
comme des mots semblables, une phonétique qui s'approche d'un mot, ou tout simplement une recherche de la présence d'autres mots.
C'est ce que va nous permettre la clause
CONTAINS du module
interMedia Text d'Oracle.
exemple d'utilisation d'Intermedia Text :
SELECT numero_article
FROM article
WHERE CONTAINS (description,'jaune AND rond') > 0;
On recherche les articles dont la colonne
description contient les mots 'jaune' et 'rond'.
CONTAINS retourne un "score" ; quand celui-ci est > 0, la recherche est fructueuse. Plus ce score est grand, plus les résultats sont intéressants.
Types de recherches :
- plusieurs mots :
WHERE CONTAINS (description,'mot1 AND mot2 AND mot3') > 0;
WHERE CONTAINS (description,'mot1 OR mot2') > 0;
WHERE CONTAINS (description,'mot1 {AND} mot2') > 0; recherche de 'mot1 AND mot2'.
- proximité physique dans le texte :
WHERE CONTAINS (description,'mot1 NEAR mot2') > 0;
- caractères génériques :
WHERE CONTAINS (description,'mot%') > 0; -- % remplace 2 caractères maximum
WHERE CONTAINS (description,'mot_') > 0; -- _(underscore) remplace au plus 1 caractère
- mots de même racine :
WHERE CONTAINS (description,'$mot') > 0;
- par rapprochement orthographique :
WHERE CONTAINS (description,'?mot') > 0;
- par rapprochement de sonorité :
WHERE CONTAINS (description,'!mot') > 0;