La consulta basada en índices de varias columnas de texto de Oracle no devuelve ninguna fila
-
27-10-2019 - |
Pregunta
Tengo una tabla MAH_KERESES_MV
con 3 columnas OBJEKTUM_NEV
, KERESES_SZOVEG_1
, KERESES_SZOVEG_2
.Creo el siguiente índice de texto de Oracle de varias columnas:
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');
Pero la consulta no devuelve ninguna fila, aunque si formulo la consulta con el operador like
, obtengo los resultados esperados:
SELECT id, OBJEKTUM_NEV
FROM MAH_KERESES_MV
WHERE CONTAINS(OBJEKTUM_NEV, 'C')>0;
¿Alguien puede ayudar por favor?TIA,
Tamas
Solución
En caso de que algún organismo pudiera estar interesado más adelante, la solución fue que la cláusula CONTAINS anterior filtra el carácter C como una entidad independiente (es decir, una palabra).La cláusula where correcta habría sido:
WHERE CONTAINS(OBJEKTUM_NEV, 'C%')>0;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow