扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
用户索引 f1^]
z:mV$1bW
Oracle Text 可为来自不同数据源的数据建立索引。Oracle Text 可用于问题跟踪系统,提供对问题元数据的全文搜索。在默认情况下,您可为单个列中的值建立索引,但是,如果要合并多个表的数据,您需要创建一个自定义的 PL/SQL 过滤器过程。我将演示如何创建这样的过程,这个过程将起到存储抽象的作用。然后,该索引进程将迭代文本表中所有的行,为每一行调用过滤器过程。过滤器过程将返回所有与问题相关的有待建立索引的文本。 1plK<JOq
00|Mj58g5
-- declare indexing procedure rTgtw`z
CREATE PACKAGE ot_search AS "cYnZ>J
PROCEDURE issue_filter(rid IN ROWID, tlob IN OUT NOCOPY CLOB); kb[5t[M_M
END ot_search; @_!;Da
/ .5_;78[$5
-- define indexing procedure &*e`tH
CREATE PACKAGE BODY ot_search AS }]ib/q/w
PROCEDURE issue_filter(rid IN ROWID, tlob IN OUT NOCOPY CLOB) IS 5,S[fpee
BEGIN s<4 fy-
FOR c1 IN (SELECT author, summary, description FROM issues WHERE rowid = rid) <-PMXdRCE
LOOP jrYEk.)
dbms_lob.writeappend(tlob, LENGTH(c1.summary)+1, c1.summary || ' '); I1 qlt_&'
dbms_lob.writeappend(tlob, LENGTH(c1.author)+1, c1.author || ' '); Vz;<Vbp4Q
dbms_lob.writeappend(tlob, LENGTH(c1.description), c1.description); pn|Zqb
END LOOP; w@RpU{Co
END issue_filter; +QYKO0(
END ot_search; d)wC5c
/ Q2F]!*Y<
-- define datastore preference for issues <UU+8J
BEGIN k[IQ+~bx
ctx_ddl.create_preference('issue_store', 'user_datastore'); x[YDi.R
ctx_ddl.set_attribute('issue_store', 'procedure', 'ot_search.issue_filter'); rNtYN}
ctx_ddl.set_attribute('issue_store', 'output_type', 'CLOB'); ^zbRt !9m
END; zJMpz
/ (rawiz`BE
-- index issues NDIQ<
CREATE INDEX issue_index ON issues(ot_version) INDEXTYPE IS ctxsys.context _rYeq^7&Y
PARAMETERS ('datastore issue_store');
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者