2011-12-02 68 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;