回答

收藏

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

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

我想为查询建立索引 x like '?c%'
7 J# |0 `( {2 m如果我有下面这样的表9 ]8 P& `+ ]4 x/ v, w
create table t(  data varchar(100));我想创建一个索引,以便能够高效地执行以下操作:' L8 M5 }0 f$ H+ }, J" |; ]1 p& Q
select * from t where contains('?c%');还有这个:8 a9 Z, f* e: J* Y  K' {& s* |
select * from t where contains('abc%');我也希望这能实时更新。
8 U5 M' p. b( i如何创建这样的索引?(我有一个需要ctxcat索引的感觉,但我对需要提供什么选择感到困惑)9 e3 D% W4 f9 Y! P# N  x
我正在使用Oracle 10g。
' C! `7 y8 u: B& Z0 b& \6 p; ~) L                                                               
8 I; g  Q+ `# `# n    解决方案:                                                                2 p3 ?* l* v! b) R: K
                                                                我会用这个(将你的最小和最大长度设置为适当值)
" {4 Q$ w& i, K2 b( ^5 FBEGIN    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文本参考》
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则