La query basata su indice multi colonna Oracle Text non restituisce alcuna riga
-
27-10-2019 - |
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
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