回答

收藏

如何为“%abc%搜索创建文本索引?

技术问答 技术问答 248 人阅读 | 0 人回复 | 2023-09-14

我想为查询建立索引 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文本参考》
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则