Question

Avoir beaucoup de résultats inutiles en utilisant la méthode contains () dans ma requête. Ne me dites pas à utiliser comme ou autre chose. Il est hardcoded et ne pouvait pas être changé.

Était-ce utile?

La solution

Contient est utilisé sur les champs de texte qui ont un « contexte Index », qui indexe un champ de texte pour la recherche. L'usage standard est comme celui-ci (en utilisant l'opérateur score pour afficher ce qui est renvoyé de la clause de contains sur la base 1 contains correspondant au 1 score):

SELECT score(1), value
FROM table_name
WHERE CONTAINS(textField, 'searchString', 1) > 0;

Pour les données comme celle-ci dans le tableau table_name

value  |  textField
-------|-----------------------------------------------
A      |   'Here is searchString.  searchString again.'
B      |   'Another string'
C      |   'Just one searchString'

Cette requête retournerait

2 A
1 C

contient donc est similaire à aimer, mais compter combien de fois une chaîne se produit dans un champ de texte. Je ne pouvais pas trouver une ressource en utilisant la façon dont il Contient est utilisé dans la requête que vous avez publié, mais je pense que ce serait retourner les lignes où dFullText a au moins une instance de car en elle, ou l'équivalent de ce sql:

Select * from blabla where dFullText like "%car%"

est une autre source.

Autres conseils

Voir cet exemple de oracle.com

declare 
rowno number := 0; 
   begin 
   for c1 in (SELECT SCORE(1) score, title FROM news 
          WHERE CONTAINS(text, 'oracle', 1) > 0
          ORDER BY SCORE(1) DESC) 
   loop 
   rowno := rowno + 1; 
   dbms_output.put_line(c1.title||': '||c1.score); 
exit when rowno = 10; 
end loop; 
end; 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top