创建分段索引

可以使用 CREATE INDEX 的 FRAGMENT BY 子句来创建循环分段和基于表达式的分段。但是,不能将 etx_contains() 运算符用作分段表达式的一部分。

假设您要利用以下要求在表 reports 的 CLOB 类型 abstract 列上创建分段索引:doc_no 值小于 1000 的文档存储在智能大对象空间 sbsp1 中,而 doc_no 值大于或等于 1000 的文档存储在智能大对象空间 sbsp2 中。

以下 CREATE INDEX 语句创建一个满足上述要求的分段 etx 索引。
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 调整参数时,搜索中才会考虑非索引字。