对于 Oracle 文本,你可以使用 CREATE INDEX 创建很多类型的索引。下面描述每个索引类型,以及他们的目的和支持的特性。
- CONTEXT 索引
- CTXCAT 索引
- CTXRULE 索引 CTXXPATH 索引
CONTEXT 描述
- 当你的文本是由大的、连续的文本组成时,可以使用该索引建立文本检索应用程序。你能为不同格式的文件建立索引,如 MS Word、HTML 或 纯文本。
- 你可以以不同方式自定义索引。
- 该类型索引在基表上执行 DML 后要求 CTX_DDL.SYNC_INDEX 。
- 除了 INDEX SET,支持所有的 CREATE INDEX preferences 和 parameters。
- 这些支持的参数包括索引分区子句(index partition clause)、格式(format)、字符集(charset)和语言列(language columns)。
CONTAINS
- 语法称为 CONTEXT 语法,它支持很多操作。
- CTXCAT 语法则可以带模板查询。
- 支持所有的文本服务和查询服务。
- 支持分区文本表的索引。
- 支持 CREATE INDEX 的 FILTER BY 和 ORDER BY 子句,也可以索引结构化列值,更有效地处理混合查询。
CTXCAT 描述
- 使用该索引类型能够获得更好地混合查询性能。通常情况下,对于该索引,你可以为小文本或文本片段建立索引。例如,在基表的其他列上,如条目名、价格和描述,可以包含在索引中,以提高混合查询性能。
- 该索引类型在 DML 后是事务性、自动更新的,而不需要 CTX_DDL.SYNC_INDEX。
INDEX SET
LEXER
STOPLIST
STORAGE
- WORDLIST (仅 prefix_index 属性支持日语数据)。
- 不支持格式(Format)、字符集(charset)和语言列。
- 不支持表和索引分区。
CATSEARCH
- 语法称为 CTXCAT,它支持逻辑运算符,短语查询和通配符。
- CONTEXT 语法可以带模板查询。
- 支持主题查询。
- 该索引较大,并且创建时间比 CONTEXT 长。
- CTXCAT 索引的大小与文本总量大小、索引集中的索引数量和索引列的数量有关。在向索引集添加索引前,仔细考虑你的查询和资源。
- CTXCAT 索引不支持表和索引分区,文本服务(高亮、标记、主题和概要),或查询服务(解释、查询反馈和浏览词)。