2011-12-02 37 views
2

我有一個MAH_KERESES_MV表和3列OBJEKTUM_NEV,KERESES_SZOVEG_1,KERESES_SZOVEG_2。我創建了以下多列Oracle Text的索引:基於Oracle Text多列索引的查詢不返回任何行

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

但查詢不返回任何行,但如果我制定與like運營商查詢,然後我得到預期的結果:

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

可以請一些身體幫忙嗎? TIA,

塔馬斯

回答

0

以防萬一,任何機構可以在後面感興趣,該解決方案是,上述CONTAINS子句過濾器爲C字符作爲一個獨立的實體(即字)。正確的從句應該是:

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