可以使用 CREATE INDEX 的 FRAGMENT BY 子句来创建循环分段和基于表达式的分段。但是,不能将 etx_contains() 运算符用作分段表达式的一部分。
假设您要利用以下要求在表 reports 的 CLOB 类型 abstract 列上创建分段索引:doc_no 值小于 1000 的文档存储在智能大对象空间 sbsp1 中,而 doc_no 值大于或等于 1000 的文档存储在智能大对象空间 sbsp2 中。
CREATE INDEX reports_idx5 ON reports (abstract etx_clob_ops) USING etx (WORD_SUPPORT = 'PATTERN', STOPWORD_LIST = 'my_stopwordlist', INCLUDE_STOPWORDS = 'TRUE', PHRASE_SUPPORT = 'MAXIMUM') FRAGMENT BY EXPRESSION doc_no < 1000 IN sbsp1, doc_no >= 1000 IN sbsp2 ;
该索引支持模式和词匹配,并提供最大词组支持。尽管指定了词列表 my_stopwordlist,但是由于存在 INCLUDE_STOPWORDS 索引参数,因此会对所有非索引字建立索引。但是,仅当在 etx_contains() 运算符中指定了 CONSIDER_STOPWORDS 调整参数时,搜索中才会考虑非索引字。