La consulta basada en índices de varias columnas de texto de Oracle no devuelve ninguna fila

StackOverflow https://stackoverflow.com/questions/8356856

  •  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

¿Fue útil?

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
scroll top