Oracle11g oracle中具有多列的上下文索引不返回任何行

Oracle11g oracle中具有多列的上下文索引不返回任何行,oracle11g,Oracle11g,我使用以下语句创建上下文索引: create TABLE test_context_index (id number, column1 VARCHAR2(30), column2 VARCHAR2(30), column3 VARCHAR2(30) ) / INSERT INTO test_context_index (ID,COLUMN1,COLUMN2,COLUMN3) VALUES(1,'tinhah','test','test data'); INSERT INTO test_cont

我使用以下语句创建上下文索引:

create TABLE test_context_index
(id number,
column1 VARCHAR2(30),
column2 VARCHAR2(30),
column3 VARCHAR2(30)
)
/
INSERT INTO test_context_index (ID,COLUMN1,COLUMN2,COLUMN3) 
VALUES(1,'tinhah','test','test data');
INSERT INTO test_context_index (ID,COLUMN1,COLUMN2,COLUMN3) 
VALUES(2,'tinehaeh','test 12','abc');
/
begin
ctx_ddl.create_preference('my_multi', 'MULTI_COLUMN_DATASTORE');
ctx_ddl.set_attribute('my_multi', 'columns', 'column1, column2, column3');
end;


create index myindex on test_context_index(column1) 
  indextype is ctxsys.context 
  parameters ('DATASTORE my_multi');
我成功地创建了。 我运行语句不返回行,帮帮我

Select * from test_context_index where contains (column1, 'h%') > 0;  
尝试:


在开头和结尾都放一个
%

Select * from test_context_index where contains (column1, '%h%') > 0;


ID   COLUMN1    COLUMN2   COLUMN3
--   -------    -------   -------
1    tinhah     test      test data
2    tinehaeh   test 12   abc
即使在开头使用通配符,仍将使用文本索引:

explain plan for Select * from test_context_index where contains (column1, '%h%') > 0;

select * from table(dbms_xplan.display);


Plan hash value: 2922841387

----------------------------------------------------------
| Id  | Operation                   | Name               |
----------------------------------------------------------
|   0 | SELECT STATEMENT            |                    |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEST_CONTEXT_INDEX |
|   2 |   DOMAIN INDEX              | MYINDEX            |
----------------------------------------------------------

i、 e.在字符的两边都需要一个通配符,表示包含h。如果你想让你的左边包含h,你可以用“h%”
explain plan for Select * from test_context_index where contains (column1, '%h%') > 0;

select * from table(dbms_xplan.display);


Plan hash value: 2922841387

----------------------------------------------------------
| Id  | Operation                   | Name               |
----------------------------------------------------------
|   0 | SELECT STATEMENT            |                    |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEST_CONTEXT_INDEX |
|   2 |   DOMAIN INDEX              | MYINDEX            |
----------------------------------------------------------