扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
文件索引 .*P4Tlwq
1EVxO&'M`
此处,您要创建一个文本表,用于为存储在问题跟踪系统中的附加文件内容建立索引。附加文件存储在文件系统中。除了应用程序的数据模型所需的列之外,文本基表还包括一个绝对文件路径和一个格式列。 K(RkA $p
ZMA#r^p
X)0cfVR3a
LygSrEa>b
CREATE TABLE files ( H];W?nwV
id NUMBER PRIMARY KEY, 82LM}8
issue_id NUMBER, ,mkU8Jd7
path VARCHAR(255) UNIQUE, /J^\pD>'Q[
ot_format VARCHAR(6) +#.r/2{F^
); 4 |q |`$a0
INSERT INTO files VALUES (1, 1, '/tmp/oracletext/found1.txt', NULL); <TJl;YKa7
INSERT INTO files VALUES (2, 2, '/tmp/oracletext/found2.doc', NULL); FEvsl+
INSERT INTO files VALUES (3, 2, '/tmp/oracletext/notfound.txt', 'IGNORE'); e@Wgea
N-NYq8g
;1O`T#8'^
此处 ot_format 的值是 Oracle Text 在索引过程中解析出来的。NULL 值表明系统会为文件自动选择一个过滤器,而如果值为 IGNORE,系统会跳过整个文件。 ]Mg0-tS
+ BD8'C)
可以使用以下语句创建文本索引: 6F\T(U3E
T%D=fYq!
CREATE INDEX file_index ON files(path) INDEXTYPE IS ctxsys.context ;RYjxZ"Ds
PARAMETERS ('datastore ctxsys.file_datastore format column ot_format'); St,&h+o
|uH<24(w<
x`4VMG=j
该语句将启动索引进程,索引进程将通过存储在基表中的路径在文件系统中检索文件,然后对内容进行过滤并建立索引。这样便创建了一个区分大小写并具有精确匹配语义的 CONTEXT 索引。该索引进程可以多种方式进行自定义,例如支持前缀和后缀匹配。 \'4$
;BJ yN5=
虽然大部分时间过滤阶段无需为每个文件指定文件格式即可很好地运行,但是,在基表中添加这一列可以对索引进程进行进一步控制。例如,使用格式列,您可以跳过某些文件类型不为其建立索引。当您只想正式支持应用程序中 Oracle Text 所支持的部分文件格式时,这一列非常有用。 IKJIj#}*
H1dq;M
Oracle Text 还可用于元数据的全文搜索。在示例应用程序中,有一个名为 issues 用于存储问题元数据的表。该表的定义如下: ^N!LQ]'A2
,r^+{#7["
CREATE TABLE issues ( HTl=/
id NUMBER, "O;Ki.6 <
summary VARCHAR(120), V9[`.8E B
description CLOB, c}c2+$w
author VARCHAR(80), Q"/-"cHtJ
ot_version VARCHAR(10) CaB`x%tE
); o-F+n`
PgkR!I7})
Yfm;#;Vj
ot_version 列为索引列,可用于强制为特定文档重新建立索引。该表可使用测试数据填充: Lkp. SSX
?lCQv%
INSERT INTO issues VALUES (1, 'Jane', 'Text does not make tea', h"4x$
'Oracle Text is unable to make morning tea', 1); _7\;Xk}
INSERT INTO issues VALUES (2, 'John', 'It comes in the wrong color', &0rCFwFr2
'I want to have Text in pink', 1); w\zoGsV
' />D,r
Ip/ JjRP
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者