Frage

Ich habe eine MAH_KERESES_MV-Tabelle mit 3 Spalten OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2.Ich erstelle den folgenden mehrspaltigen Oracle Text-Index:

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

Die Abfrage gibt jedoch keine Zeilen zurück. Wenn ich die Abfrage jedoch mit dem Operator like formuliere, erhalte ich die erwarteten Ergebnisse:

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

Kann bitte ein Körper helfen?TIA,

Tamas

War es hilfreich?

Lösung

Nur für den Fall, dass später ein Körper interessiert sein könnte, bestand die Lösung darin, dass die obige CONTAINS-Klausel für das C-Zeichen als eigenständige Entität (d. h. Wort) filtert.Die richtige where-Klausel wäre gewesen:

WHERE CONTAINS(OBJEKTUM_NEV, 'C%')>0;

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top