我想为查询建立索引 x like '?c%' ; h) X* q4 k* E$ Y4 b, n如果我有下面这样的表 ' D/ d% I3 L1 A5 Q1 e9 V" t3 k' lcreate table t( data varchar(100));我想创建一个索引,以便能够高效地执行以下操作:* }5 C+ O) S) _3 Q$ ]+ j
select * from t where contains('?c%');还有这个:7 Q% D8 K( v$ X: a5 t
select * from t where contains('abc%');我也希望这能实时更新。- W4 _" G. B* s# o
如何创建这样的索引?(我有一个需要ctxcat索引的感觉,但我对需要提供什么选择感到困惑)" Y! m4 y" z6 B/ e, v
我正在使用Oracle 10g。1 X' h1 v. H( ]& P; m m6 O1 V. i
' `4 R9 i h7 _! X' s: S解决方案: 7 Y, h& M W, X3 k0 A4 f 我会用这个(将你的最小和最大长度设置为适当值) # H+ T4 J$ c+ l7 b; q9 a8 [BEGIN ctx_ddl.create_preference ('FT_WL','BASIC_WORDLIST ctx_ddl.set_attribute FT_WL','substring_index', 'YES ctx_ddl.set_attribute FT_WL','prefix_index YES ctx_ddl.set_attribute FT_WL','prefix_min_length ctx_ddl.set_attribute FT_WL','prefix_max_length,6); END;CREATE INDEX fulltext_idx ON tmp_fulltext (fulltext) INDEXTYPE IS CTXSYS.CTXCAT PARAMETERS ('WORDLIST FT_WL')这里解释了这些参数《Oracle文本参考》