A consulta baseada em índice de múltiplas colunas do Oracle Text não retorna nenhuma linha

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

  •  27-10-2019
  •  | 
  •  

Pergunta

Eu tenho uma tabela MAH_KERESES_MV com 3 colunas OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2.Eu crio o seguinte índice do Oracle Text com várias colunas:

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');

Mas a consulta não retorna nenhuma linha, embora se eu formular a consulta com o operador like, obtenho os resultados conforme o esperado:

SELECT  id, OBJEKTUM_NEV 
FROM MAH_KERESES_MV
WHERE CONTAINS(OBJEKTUM_NEV, 'C')>0;

Algum corpo pode ajudar?TIA,

Tamas

Foi útil?

Solução

Apenas no caso de algum corpo estar interessado mais tarde, a solução foi que a cláusula CONTAINS acima filtra o caractere C como uma entidade autônoma (ou seja, palavra).A cláusula where correta seria:

WHERE CONTAINS(OBJEKTUM_NEV, 'C%')>0;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top