Domanda

Ho una tabella MAH_KERESES_MV con 3 colonne OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2.Creo il seguente indice Oracle Text a più colonne:

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

Ma la query non restituisce alcuna riga, anche se se formulo la query con l'operatore like, ottengo i risultati come previsto:

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

Qualcuno può aiutare per favore?TIA,

Tamas

È stato utile?

Soluzione

Nel caso in cui un corpo potesse essere interessato in seguito, la soluzione era che la clausola CONTAINS sopra filtra per il carattere C come entità a sé stante (cioè parola).La clausola where corretta sarebbe stata:

WHERE CONTAINS(OBJEKTUM_NEV, 'C%')>0;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top