requete CONTAINS

requete CONTAINS - SQL/NoSQL - Programmation

Marsh Posté le 22-02-2006 à 14:33:41    

Slt,
 
j'utilise Oracle Text et il y a une requete Contains que l'on peut utiliser.
Mais dans la doc il y a un paramètre que je ne comprend pas:
 
CONTAINS(text, 'oracle', 1) > 0
A quoi sert le 1? Quel est le changement si je met 2 ou 3 à la place de ce 1?
Et ca retourne 1 quand il a trouvé un résultat et non sinon c'est bien ca?
 
doc:
http://www.lc.leidenuniv.nl/awcour [...] tm#1007474
 
Merci d'avance

Reply

Marsh Posté le 22-02-2006 à 14:33:41   

Reply

Marsh Posté le 22-02-2006 à 16:50:40    

Il y a une explication légèrement différente à l'adresse http://www.cs.umb.edu/cs634/ora9id [...] .htm#21732
 
Le troisième paramètre est un nombre qui sert d'étiquette pour le cas où l'on veuille récupérer le score, par exemple pour classer les résultats.

SELECT SCORE(n), ....
  FROM ...  
 WHERE CONTAINS(..., ...., n) > 0
 ORDER BY SCORE(n) DESC;

Utiliser le nombre 1 est suffisant sauf lorsque qu'il y a plusieurs recherches :

SELECT SCORE(1), SCORE(2),....
  FROM ...  
 WHERE CONTAINS(..., ...., 1) > 0
   AND CONTAINS(..., ...., 2) > 0
 ORDER BY SCORE(1) DESC, SCORE(2) ASC;


CONTAINS retourne un pourcentage de pertinence (relevance). Donc, cela retourne 0, si la chaine n'est pas trouvée dans le texte, et cela retourne un nombre proche de 100 si la chaine est trouvée très très souvent dans le texte.
 
N.B. CONTAINS ne marche qu'avec des documents indexés.
Pour une recherche sur un champ ordinaire, il est possible d'utiliser INSTR.


Message édité par olivthill le 22-02-2006 à 16:51:35
Reply

Marsh Posté le 23-02-2006 à 12:11:01    

ok merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed