Oracle Text index de plusieurs colonnes requête basée ne renvoie aucune ligne
-
27-10-2019 - |
Question
J'ai une table MAH_KERESES_MV
avec 3 colonnes OBJEKTUM_NEV
, KERESES_SZOVEG_1
, KERESES_SZOVEG_2
. Je crée la colonne Oracle à plusieurs index de texte suivant:
exec ctx_ddl.create_preference( 'MAH_SEARCH', 'MULTI_COLUMN_DATASTORE');
exec ctx_ddl.set_attribute('MAH_SEARCH', 'COLUMNS', 'OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2');
create index MAX_KERES_CTX on MAH_KERESES_MV(OBJEKTUM_NEV)
indextype is ctxsys.context
parameters ('DATASTORE MAH_SEARCH');
Mais la requête ne renvoie aucune ligne, mais si je formule la requête avec l'opérateur like
, puis-je obtenir les résultats comme prévu:
SELECT id, OBJEKTUM_NEV
FROM MAH_KERESES_MV
WHERE CONTAINS(OBJEKTUM_NEV, 'C')>0;
un corps peut-il vous plaît aider? TIA,
Tamas
La solution
Juste au cas où tout organisme susceptible d'être intéressé par la suite, la solution est que le CONTIENT ci-dessus les filtres de clause pour le caractère C comme une entité autonome (ce mot). La clause WHERE correcte aurait été:
WHERE CONTAINS(OBJEKTUM_NEV, 'C%')>0;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow