文档库 最新最全的文档下载
当前位置:文档库 › Oracle全文索引技术-使用说明文档解析

Oracle全文索引技术-使用说明文档解析

Oracle全文索引技术-使用说明文档解析
Oracle全文索引技术-使用说明文档解析

[Oracle全文索引技术] 使用说明文档

金联万家(北京)电子支付科技发展有限公司

修改记录

目录

1 前言 (3)

1.1 编写目的 (3)

1.2 名词解释 (3)

1.3 参考资料 (3)

2 oracle全文索引技术 (4)

3 建立全文索引的操作步骤 (4)

3.1 查看用户与角色 (4)

3.2 开启目标用户全文索引权限 (4)

3.3 设置语法分析器Lexer (5)

3.4 建立索引 (5)

3.5 使用索引 (6)

4 全文索引的种类 (6)

5 对多字段建立索引 (6)

6 Oracle全文索引之 - CONTEXT (7)

6.1 函数 CONTAINS 语法 (7)

6.2 全文索引的维护 (7)

6.2.1 同步数据 (8)

6.3 单个中文字查询问题 (9)

7 建立全文索引的完整脚本 (10)

8 附录 (14)

1前言

1.1编写目的

本文档主要说明Oracle全文索引技术的使用与维护,为数据库操作使用人员提供参考维护手册。

1.2名词解释

表 1.术语表

1.3参考资料

表 2.参考资料列表

2oracle全文索引技术

全文检索:是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

【Oracle Text 全文检索】

Oracle一直致力于全文检索技术的研究,当Oracle9i Rlease2发布之时,Oracle数据库的全文检索技术已经非常完美,Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i 采用的新名称,在Oracle8/8i中它被称作Oracle interMedia Text,在Oracle8以前它的名称是Oracle ConText Cartridge。使用Oracle9i和Oracle Text,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据库应用程序中充分利用Oracle Text搜索,应用范围可以是现有应用程序中可搜索的注释字段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。Oracle Text支持Oracle数据库所支持的大多数语言的基本全文搜索功能。

扩展阅读: https://www.wendangku.net/doc/7617720662.html,/view/663956.htm

3建立全文索引的操作步骤

3.1查看用户与角色

检查数据库中是否有CTXSYS 用户和CTXAPP 角色

如果没有这个用户和角色,意味着你的数据库创建时未安装intermedia功能。你必须修改数据库以安装这项功能。默认安装情况下,ctxsys用户是被锁定的,因此要先启用ctxsys的用户。

-- 锁住用户

ALTER USER ctxsys ACCOUNT LOCK PASSWORD EXPIRE;

-- 解锁用户

ALTER USER ctxsys ACCOUNT UNLOCK IDENTIFIED BY ctxsys;

如果没有该用户,则需要打开dbca工具中选择configrue database options,然后选择所有数据库组件安装即可。

3.2开启目标用户全文索引权限

赋权在ctxsys用户下把ctx_ddl的执行权限赋于要使用全文索引的用户,例:

GRANT EXECUTE ON ctx_ddl TO username;

3.3设置语法分析器Lexer

Oracle实现全文检索,其机制其实很简单。即通过Oracle专利的词法分析器(lexer),将文章中所有的表意单元(Oracle 称为 term)找出来,记录在一组以dr$开头的表中,同时记下该term出现的位置、次数、hash 值等信息。检索时,Oracle 从这组表中查找相应的term,并计算其出现频率,根据某个算法来计算每个文档的得分(score),即所谓的‘匹配率’。而lexer则是该机制的核心,它决定了全文检索的效率。Oracle 针对不同的语言提供了不同的 lexer, 而我们通常能用到其中的三个:

basic_lexer :针对英语(默认分析器)

chinese_vgram_lexer:专门针对汉语,对汉字搜索准确性较高

如:‘中国人民站起来了’这句话,会被它分析成如下几个term: ‘中’,‘中国’,‘国人’,‘人民’,‘民站’,‘站起’,起来’,‘来了’,‘了’

chinese_lexer:新的汉语分析器,只支持 UTF8 字符集,可以将语句分词成常见的词组,能跟有效率的分析语句,对汉字解析搜索效率较高

【指定语法分析器:】

1.当前用户下下建立一个preference(例:在pomoho用户下执行以下语句)

EXEC ctx_ddl.create_preference('my_lexer','chinese_vgram_lexer');

2.在建立全文索引索引时,指明所用的lexer:

CREATE INDEX myindex ON mytable(mycolumn) INDEXTYPE IS ctxsys.context PARAMETERS('lexer my_lexer');

这样建立的全文检索索引,就会使用chinese_vgram_lexer作为分析器。

3.4建立索引

通过以下语法建立全文索引

3.5使用索引

使用全文索引很简单,可以通过:

SELECT * FROM PUBMENU WHERE CONTAINS(MENUNAME, '上传图片') > 0;

4全文索引的种类

建立的Oracle Text索引被称为域索引(domain index),包括4种索引类型:

?CONTEXT

用于对含有大量连续文本数据进行检索。支持word、html、xml、text等很多数据格式。支持中文字符集,支持分区索引,唯一支持并行创建索引(Parallel indexing)的索引类型。对表进行DML操作后,并不会自动同步索引。需要手工同步索引。查询操作符:CONTAINS

?CTXCAT

当使用混合查询语句的时候可以带来很好的效率。适合于查询较小的具有一定结构的文本段。具有事务性,当更新主表的时候自动同步索引。作符:CA TSEARCH

?CTXRULE

主要用于文档分类。查询操作符:MATCHES

?CTXXPATH

快速查找XML文档NODE节点XPATH路径

5对多字段建立索引

很多时候需要从多个文本字段中查询满足条件的记录,这时就需要建立针对多个字段的全文索引,例如需要从

作:

--建议多字段索引的preference ,以ctxsys登录,并执行

EXEC ctx_ddl.create_preference('ctx_idx_subject_pref','MULTI_COLUMN_DATASTORE');

-- 建立 preference 对应的字段值(以ctxsys登陆)

EXEC ctx_ddl.set_attribute('ctx_idx_subject_pref','columns','subjectname,briefintro'); --建立全文索引

CREATE INDEX ctx_idx_subject ON pmhsubjects(subjectname) INDEXTYPE IS ctxsys.context PARAMETERS('DATASTORE ctxsys.ctx_idx_subject_pref lexer my_lexer');

--使用索引

SELECT * FROM pmhsubjects WHERE contains(subjectname,'李宇春');

6Oracle全文索引之- CONTEXT

CONTEXT:用于对含有大量连续文本数据进行检索。支持word、html、xml、text等很多数据格式。支持中文字符集,支持分区索引,唯一支持并行创建索引(Parallel indexing)的索引类型。对表进行DML操作后,并不会自动同步索引。需要手工同步索引。查询操作符:CONTAINS

6.1函数CONTAINS 语法

使用contains时,主要查询语法有:contains([列名称],[查询关键字])

Logical Operators:组合搜索条件,通过使用AND,OR等逻辑符号。

?AND(&),同时含有所有关键词,如:'cats AND dogs','cats & dogs'

?OR(|),含有所有关键词中的任意一个,如:'cats | dogs','cats OR dogs's

?NOT(~),不含该关键词,如:'animals ~ dogs'

?ACCUM(,),与|类似,如:'dogs, cats, puppies'

?EQUIV(=),如:'German shepherds=alsatians are big dogs'

?ABOUT等

【示例:】

包含:“中国、安徽”关键字的“建设”或“农业”银行

SELECT * FROM cn_common_data_bank_info t WHERE contains(t.ptcpt_nm,'( 建设 | 农业 ) & 安徽 & 中国')>0;

6.2全文索引的维护

对于CTXSYS.CONTEXT索引,当应用程序对基表进行DML操作后,对基表的索引维护是必须的。索引维护包括索引

myindex):DR$myindex$I、DR$myindex$K、DR$myindex$R、DR$myindex$N其中以I表最重要,可以查询一下该表,看看有什么内容:

--IDX_CNDATABANKINFO_PKNM

SELECT * FROM cn_common_data_bank_info;

SELECT * FROM user_indexes;

SELECT t.token_text,t.token_count FROM dr$idx_cndatabankinfo_pknm$i t;

这里就不列出查询接过了。可以看到,该表中保存的其实就是Oracle 分析你的文档后,生成的term记录在这里,包括term出现的位置、次数、hash值等。当文档的内容改变后,可以想见这个I表的内容也应该相应改变,才能保证Oracle在做全文检索时正确检索到内容(因为所谓全文检索,其实核心就是查询这个表)。这就用到sync(同步) 和 optimize(优化)了。

?同步(sync): 将新的term 保存到I表;

?优化(optimize): 清除I表的垃圾,主要是将已经被删除的term从I表删除。

当基表中的被索引文档发生insert、update、delete操作的时候,基表的改变并不能马上影响到索引上直到同步索引。可以查询视图CTX_USER_PENDING查看相应的改动。例如:

SELECT * FROM ctx_user_pending t;

SELECT T.PND_INDEX_NAME,

T.PND_ROWID,

TO_CHAR(T.PND_TIMESTAMP, 'dd-mm-yyyy hh24:mi:ss') TIMESTAMP

FROM CTX_USER_PENDING T;

6.2.1同步数据

同步和优化方法: 可以使用Oracle提供的ctx_ddl包同步和优化索引

对于CTXCAT类型的索引来说,当对基表进行DML操作的时候,Oracle自动维护索引。对文档的改变马上反映到索引中。CTXCAT是事务形的索引。

【索引的同步】

在对基表插入,修改,删除之后同步索引。推荐使用sync同步索引。语法:

CTX_DDL.SYNC_INDEX(

IDX_NAME IN VARCHAR2DEFAULT NULL,--索引名称

MEMORY IN VARCHAR2DEFAULT NULL,--指定同步索引需要的内存。默认是系统参数:DEFAULT_INDEX_MEMORY

--指定一个大的内存时候可以加快索引效率和查询速度,且索引有较少的碎片

PART_NAME IN VARCHAR2DEFAULT NULL,--同步哪个分区索引

PARALLEL_DEGREE IN NUMBER DEFAULT1--并行同步索引。设置并行度。

);

EXEC ctx_ddl.sync_index('myindex');

实施建议:建议通过oracle的job对索引进行同步

【索引的优化】

经常的索引同步将会导致你的CONTEXT索引产生碎片。索引碎片严重的影响了查询的反应速度。你可以定期优化索引来减少碎片,减少索引大小,提高查询效率。

当文本从表中删除的时候,Oracle Text标记删除的文档,但是并不马上修改索引。因此,就的文档信息占据了不必要的空间,导致了查询额外的开销。你必须以FULL模式优化索引,从索引中删除无效的旧的信息。这个过程叫做垃圾处理。当你经常的对表文本数据进行更新,删除操作的时候,垃圾处理是很必要的。

EXEC ctx_ddl.optimize_index('myidx', 'full');

实施建议:每天在系统空闲的时候对全文索引进行相应的优化,以提高检索的效率

-- 同步、优化全文索引IDX_CNDATABANKINFO_PKNM ,10W数据,执行时间小于1分钟

BEGIN

ctx_ddl.sync_index('IDX_CNDATABANKINFO_PKNM');

ctx_ddl.optimize_index('IDX_CNDATABANKINFO_PKNM','full');

END;

/

6.3单个中文字查询问题

查询单个中文字时,出现错误:

SELECT T.ID, T.BK_CD, T.PTCPT_NM

FROM CN_COMMON_DATA_BANK_INFO T

WHERE T.STATUS = 1

AND CONTAINS(T.PTCPT_NM, '行 & 银 & 云') > 0;

ORA-29902:执行ODCIIndexStart() 例行程序中出错;

ORA-20000:Oracle Text Error;

DRG-10847:CONTAINS 要求这种类型的查询有前缀索引;

改成查询:两个字的中文则正常

CONTAINS(T.PTCPT_NM, '分行 & 银行 & 云南')

【原因】

需要手工修改配置,修改如下

SELECT * FROM user_indexes ;

DROP INDEX IDX_CNDATABANKINFO_PKNM;

------------

BEGIN

ctx_ddl.drop_preference('cacps2_ceshi.CHINESE_LEXER');

ctx_ddl.drop_preference('cacps2_ceshi.ChineseWordList');

ctx_ddl.create_preference ('cacps2_ceshi.CHINESE_LEXER', 'CHINESE_VGRAM_LEXER');

ctx_ddl.create_preference('cacps2_ceshi.ChineseWordList', 'BASIC_WORDLIST');

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','PREFIX_INDEX','TRUE');

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','PREFIX_MIN_LENGTH',1);

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','PREFIX_MAX_LENGTH', 5);

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','SUBSTRING_INDEX', 'YES'); END;

/

-----------

Create INDEX IDX_CNDATABANKINFO_PKNM on cn_common_data_bank_info(ptcpt_nm)

indextype is ctxsys.CONTEXT parameters('lexer cacps2_ceshi.chinese_lexer wordlist cacps2_ceshi.chinesewordlist');

【总结:】

?OracleText要支持中文必须得用CHINESE_VGRAM_LEXER。

?要支持一个中文字以上的搜索,必须配置一个WordList,且把它的属性Prefix_Index配置为True。

7建立全文索引的完整脚本

/* ------------------------------------------

以下脚本为代收付系统“行名行号表 cn_common_data_bank_info”银行名称字段“ptcpt_nm ”建立全文索引

数据库用户名:cacps2_ceshi

索引名称: IDX_CNDATABANKINFO_PKNM

------------------------------------------ */

GRANT EXECUTE ON ctx_ddl TO cacps2_ceshi;

-- 以下操作均使用 cacps2_ceshi 用户进行操作

-- 查询是否存在索引 IDX_CNDATABANKINFO_PKNM

SELECT * FROM user_indexes t WHERE t.index_name='IDX_CNDATABANKINFO_PKNM';

-- 去除已经存在的索引

DROP INDEX IDX_CNDATABANKINFO_PKNM;

-- 设置全文索引参数 cacps2_ceshi 指的是用户名

BEGIN

ctx_ddl.drop_preference ('cacps2_ceshi.CHINESE_LEXER');

ctx_ddl.create_preference ('cacps2_ceshi.CHINESE_LEXER', 'CHINESE_VGRAM_LEXER');

ctx_ddl.drop_preference ('cacps2_ceshi.ChineseWordList');

ctx_ddl.create_preference('cacps2_ceshi.ChineseWordList', 'BASIC_WORDLIST');

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','PREFIX_INDEX','TRUE');

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','PREFIX_MIN_LENGTH',1);

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','PREFIX_MAX_LENGTH', 5);

ctx_ddl.set_attribute('cacps2_ceshi.ChineseWordList','SUBSTRING_INDEX', 'YES'); END;

/

-- 查看全文索引参数

SELECT * FROM ctx_preference_values ORDER BY1;

SELECT * FROM ctx_preferences ORDER BY1;

-- 建立 context 类型的全文索引

Create INDEX IDX_CNDATABANKINFO_PKNM on cn_common_data_bank_info(ptcpt_nm)

indextype is ctxsys.CONTEXT parameters('lexer cacps2_ceshi.chinese_lexer wordlist cacps2_ceshi.chinesewordlist');

-- 全文索引查询语句 contains

SELECT COUNT(*) FROM cn_common_data_bank_info t WHERE contains(t.ptcpt_nm,'农业银行 & 公司')>0;

SELECT* FROM cn_common_data_bank_info t WHERE contains(t.ptcpt_nm,'农业 & 安徽 & 中 & 部')>0;

SELECT * FROM cn_common_data_bank_info t WHERE contains(t.ptcpt_nm,'( 建设 | 农业 ) & 安徽 & 中国')>0;

-- 同步、优化全文索引IDX_CNDATABANKINFO_PKNM ,10W数据,执行时间小于1分钟

-- 可以将此执行语句放到 Oracle 定时任务中每天定时执行

BEGIN

ctx_ddl.sync_index('IDX_CNDATABANKINFO_PKNM');

ctx_ddl.optimize_index('IDX_CNDATABANKINFO_PKNM','full');

END;

/

-- 或建立同步存储过程,以便定时调用

CREATE OR REPLACE PROCEDURE SYNC_CNCOMMBANKINFO_TEXTINDEX AS

功能名称:同步行名行号表全文索引

用途:在行名行号表数据更新后执行,使全文索引的数据与表一致

执行周期:每日

作者:宋成

时间:2013-03-21

数据来源:cn_common_data_bank_info

目标表:cn_common_data_bank_info

临时表:

参数表:

参数列表:

-------------------------------------------------------------------- 参数 IN/OUT 类型说明

-------------------------------------------------------------------- 返回值:无

版本历史:

-------------------------------------------------------------------- 作者日期版本号说明

-------------------------------------------------------------------- 宋成 2013-03-20 1.0 新建

*/

BEGIN

CTX_DDL.SYNC_INDEX('IDX_CNDATABANKINFO_PKNM');

CTX_DDL.OPTIMIZE_INDEX('IDX_CNDATABANKINFO_PKNM', 'full');

END SYNC_CNCOMMBANKINFO_TEXTINDEX;

-- 查询当前用户的定时任务列表

SELECT * FROM USER_JOBS;

-- 每天凌晨 5 点执行 sync_cncommbankinfo_textindex 数据同步存储过程DECLARE

V_JOB_NUM NUMBER;

BEGIN

DBMS_JOB.SUBMIT(V_JOB_NUM,

'sync_cncommbankinfo_textindex;',

SYSDATE,

'TRUNC(SYSDATE) + 1 + 5 / 24');

END;

-- 删除指定编号的 JOB

begin

dbms_job.remove(24); end;

/

8附录

【需要对文档做进一步说明的辅助文档或在文档中提到的相关文档可作为附录。】

Toad_for_Oracle10中文手册

Toad? for Oracle Quest虹天软件(北京)有限公司 二零零六年八月

目录 1.方案简介 (4) 2.TOAD? FOR ORACLE (5) 2.1. S CHEMA B ROSWER (6) 2.2. SQL E DITOR (6) 2.3. P ROCEDURE E DITOR (7) 2.4. SQL M ODELER (8) 2.5. F AST R EPORT (9) 2.6. S CRIPT MANAGER (10) 2.7. M ASTER/D ETAIL B ROWSER (10) 2.8. C ONNECTION C OLOR-C ODING (11) 3.TOAD? FOR ORACLE PROFESSIONAL (11) 3.1. PL/SQL D EBUGGER (12) 3.2. C ODE P ROFILING (12) 3.3. K NOWLEDGE X PERT? FOR PL/SQL (13) 3.4. T EAM C ODING (14) 3.5. C ODE X PERT (14) 4.TOAD? FOR ORACLE XPERT (15) 4.1. SQL S CANNER (15) 4.2. SQL I NSPECTOR (15) 4.3. SQL O PTIMIZER (16) 4.4. I NDEX E XPERT (19) 4.5. C ROSS I NDEX A NALYSIS (19) 4.6. O UTLINE M ANAGER (20) 4.7. P LAN C HANGE A NALYZER (20) 4.8. B EST P RACTICES (22) 5.TOAD? FOR ORACLE SUITE (22) 5.1. DBA M ODULE (22) 5.1.1.Database Monitor (22) 5.1.2.Database Probe (23) 5.1.3.Health Check (24) 5.1.4.Instance Manager (24) 5.1.5.Top Session Finder (25) 5.1.6.Oracle Parameters (26) 5.1.7.Session Browser (26) 5.2. K NOWLEDGE X PERT? FOR O RACLE A DMINISTRATION (27) 5.3. D ATA F ACTORY?D EVELOPER E DITION (27) 5.4. B ENCHMARK F ACTORY? FOR D ATABASES (27)

详解ORACLE簇表、堆表、IOT表、分区表

详解ORACLE簇表、堆表、IOT表、分区表 簇和簇表 簇其实就是一组表,是一组共享相同数据块的多个表组成。将经常一起使用的表组合在一起成簇可以提高处理效率。 在一个簇中的表就叫做簇表。建立顺序是:簇→簇表→数据→簇索引 1、创建簇的格式 CREATE CLUSTER cluster_name (column date_type [,column datatype]...) [PCTUSED 40 | integer] [PCTFREE 10 | integer] [SIZE integer] [INITRANS 1 | integer] [MAXTRANS 255 | integer] [TABLESPACE tablespace] [STORAGE storage] SIZE:指定估计平均簇键,以及与其相关的行所需的字节数。 2、创建簇 create cluster my_clu (deptno number) pctused60 pctfree10 size1024 tablespace users storage( initial128k next128k minextents2 maxextents20

);

3、创建簇表 create table t1_dept( deptno number, dname varchar2(20) ) cluster my_clu(deptno); create table t1_emp( empno number, ename varchar2(20), birth_date date, deptno number ) cluster my_clu(deptno); 4、为簇创建索引 create index clu_index on cluster my_clu; 注:若不创建索引,则在插入数据时报错:ORA-02032: clustered tables cannot be used before the cluster index is built 管理簇 使用ALTER修改簇属性(必须拥有ALTER ANY CLUSTER的权限) 1、修改簇属性 可以修改的簇属性包括: * PCTFREE、PCTUSED、INITRANS、MAXTRANS、STORAGE * 为了存储簇键值所有行所需空间的平均值SIZE * 默认并行度

Oracle 分区的概念

Oracle 分区的概念 分区是指将巨型的表或索引分割成相对较小的、可独立管理的部分,这些独立的部分称为原来表或索引的分区。分区后的表与未分区的表在执行查询语句或其他DML语句时没有任何区别,一旦进行分区之后,还可以使用DDL语句对每个单独的分区进行操作。因此,对巨型表或者索引进行分区后,能够简化对它们的管理和维护操作,而且分区对于最终用户和应用程序是完全透明的。 在对表进行分区后,每一个分区都具有相同的逻辑属性。例如,各个分区都具有相同的字段名、数据类型和约束等。但是各个分区的物理属性可以不同,例如,各个分区可以具有不同的存储参数,或者位于不同的表空间中。 如果对表进行了分区,表中的每一条记录都必须明确地属于某一个分区。记录应当属于哪一个分区是记录中分区字段的值决定的。分区字段可以是表中的一个字段或多个字段的组合,这时在在创建分区表时确定。在对分区表执行插入、删除或更新等操作时,Oracle会自动根据分区字段的值来选择所操用的分区。分区字段由1~16个字段以某种顺序组成,但不能包含ROWID等伪列,也不能包含全为NULL值的字段。 图10-1显示了一个典型的分区表。通常在对表进行分区时也会将地对应的索引进行分区,但是未分区的表可以具有分区的索引,而分区的表也可以具有未分区的索引。 索引索引 索引 索引 5月6月7月 未分区的表(分区的索引) 分区的表(分区的索引) 图10-1 分区表与分区索引 一个表可以被分割成任意数目的分区,但如果在表中包含有LONG或LONG RAW类型的字段,则不能对表分区。对于索引组织表而言,虽然也可以分区,但是有如下一些限制: ●索引组织表仅支持范围和散列分区,不能以列表或复合方式对索引组织表进行分 区。 ●分区字段必须是主键字段的一个子集。 ●如果在索引组织表中使用了OVERFLOW子句,溢出存储段将随表的分区进行相 同的分割。 下面给出了应当考虑对表进行分区的一些常见情况: ●如果一个表的大小超过了2GB,通常会对它进行分区。 ●如果要对一表进行并行DML操作,则必须对它进行分区。 ●如果为了平衡硬盘I/O操作,需要将一个表分散存储在不同的表空间中,这时就必 须对表进行分区。 ●如果需要将表的一部分置为只读,而另一部分为可更新的,则必须以它进行分区。

Oracle BIEE官方文档学习笔记-创建RPD文件

Created By Benny_Zhou 仅为个人学习分享交流,请勿用作商业用途。 1.创建RPD 文件的物理层 物理层定义了BI 查询的数据来源。 建议通过导入数据库或者其他数据来源的元数据的方式产生物理层。 可以从已有的数据源中导入(部分)模型。 可以在物理层手工创建对象。 当你导入元数据后,很多数据源的属性会根据导入过程中收集的信息自动配置。导入之后,仍然可以定义物理数据源的其他属性,比如连接关系等。物理层可以存在包括数据库、平面文件(Flat File ),XML 文档等多个来源。 1.1 创建新的RPD 文件 打开BI 管理器-文件-新建-输入名称- 输入密码,点击下一步 1.2 导入元数据 选择连接类型为OCI 10g/11g ; 输入数据源名称orcl ,数据源名称与tnsnames.ora 中的Oracle 数据库实例名称一致; 输入用户名和密码,点击下一步; 接受默认元数据类型,点击下一步;(主键和外键是否需要导入?) 选择需要导入的表,下一步; Creating a Repository Using the Oracle BI 11gAdministration Tool/创 建RPD 文件 2014年7月8日 16:48

选择需要导入的表,下一步; 弹出连接池窗口,接受默认,下一步; 出现导入信息,导入完成后,展开查看表是否成功导入。 1.3 验证连接 选择工具-更新所有行;

更新完成后,鼠标悬停在表上,观察行信息中的更新时间; 展开表,右键查看数据; 1.4 创建别名 鼠标点在表上,右键选择新对象-别名;输入别名;输入描述。 1.5 创建键和连接 在物理层选择几个表,右键选择物理图表-仅限所选对象; 需要调整物理图表中的对象,可以再工具栏中使用放大、缩小、适合、全部隐藏、全部展开等等 点击工具栏中的新建连接,先点击F1 Revenue,然后点击D1 Time,物理外键窗口打开。 注意先点击哪个表是有关系的。连接产生了1:N的关系,将第一个表的主键列和第二个表的外键列连接。

使用Oracle全文索引搜索文本

使用Oracle全文索引搜索文本 不使用Oracle text功能,也有很多方法可以在Oracle数据库中搜索文本.可以使用标准的INSTR 函数和LIKE操作符实现。 SELECT *FROM mytext WHERE INSTR (thetext, 'Oracle') > 0; SELECT * FROM mytext WHERE thetext LIKE '%Oracle%'; 有很多时候,使用instr和like是很理想的, 特别是搜索仅跨越很小的表的时候.然而通过这些文本定位的方法将导致全表扫描,对资源来说消耗比较昂贵,而且实现的搜索功能也非常有限,因此对海量的文本数据进行搜索时,建议使用oralce提供的全文检索功能建立全文检索的步骤步骤一检查和设置数据库角色首先检查数据库中是否有CTXSYS用户和CTXAPP脚色。如果没有这个用户和角色,意味着你的数据库创建时未安装intermedia功能。你必须修改数据库以安装这项功能。默认安装情况下,ctxsys用户是被锁定的,因此要先启用ctxsys 的用户。步骤二赋权在ctxsys用户下把ctx_ddl的执行权限赋于要使用全文索引的用户,例: grant execute on ctx_ddl to pomoho; 步骤三设置词法分析器(lexer) Oracle实现全文检索,其机制其实很简单。即通过Oracle专利的词法分析器(lexer),将文章中所有的表意单元(Oracle 称为term)找出来,记录在一组以dr$开头的表中,同时记下该term 出现的位置、次数、hash 值等信息。检索时,Oracle 从这组表中查找相应的term,并计算其出现频率,根据某个算法来计算每个文档的得分(score),即所谓的‘匹配率’。而lexer则是该机制的核心,它决定了全文检索的效率。Oracle 针对不同的语言提供了不同的lexer, 而我们通常能用到其中的三个: n basic_lexer: 针对英语。它能根据空格和标点来将英语单词从句子中分离,还能自动将一些出现频率过高已经失去检索意义的单词作为‘垃圾’处理,如if , is 等,具有较高的处理效率。但该lexer应用于汉语则有很多问题,由于它只认空格和标点,而汉语的一句话中通常不会有空格,因此,它会把整句话作为一个term,事实上失去检索能力。以‘中国人民站起来了’这句话为例,basic_lexer 分析的结果只有一个term ,就是‘中国人民站起来了’。此时若检索‘中国’,将检索不到内容。 n chinese_vgram_lexer: 专门的汉语分析器,支持所有汉字字符集(ZHS16CGB231280 ZHS16GBK ZHT32EUC ZHT16BIG5 ZHT32TRIS ZHT16MSWIN950 ZHT16HKSCS UTF8 )。该分析器按字为单元来分析汉语句子。‘中国人民站起来了’这句话,会被它分析成如下几个term: ‘中’,‘中国’,‘国人’,‘人民’,‘民站’,‘站起’,起来’,‘来了’,‘了’。可以看出,这种分析方法,实现算法很简单,并且能实现‘一网打尽’,但效率则是差强人意。 n chinese_lexer: 这是一个新的汉语分析器,只支持utf8字符集。上面已经看到,chinese vgram lexer这个分析器由于不认识常用的汉语词汇,因此分析的单元非常机械,像上面的‘民站’,‘站起’在汉语中根本不会单独出现,因此这种term是没有意义的,反而影响效率。chinese_lexer的最大改进就是该分析器能认识大部分常用汉语词汇,因此能更有效率地分析句子,像以上两个愚蠢的单元将不会再出现,极大提高了效率。但是它只支持utf8, 如果你的数据库是zhs16gbk字符集,则只能使用笨笨的那个Chinese vgram lexer. 如果不做任何设置,Oracle 缺省使用basic_lexer这个分析器。要指定使用哪一个lexer, 可以这样操作: 第一.当前用户下下建立一个preference(例:在pomoho用户下执行以下语句) exec ctx_ddl.create_preference ('my_lexer', 'chinese_vgram_lexer');

Oracle 分区表的优点

ORACLE 表分区 表分区的好处和事处理 表分区描述 表分区(partition):表分区技术是在超大型数据库(VLDB)中将大表及其索引通过分区(patition)的形式分割为若干较小、可管理的小块,并且每一分区可进一步划分为更小的子分区(sub partition)。而这种分区对于应用来说是透明的。Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。 分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。每个分区都是一个独立的段(SEGMENT),可以存放到相同(不同)的表空间中。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用SQL DML 命令访问分区后的表时,无需任何修改。(对于高效率查询是有影响,主要差别是对某一分区数据时行查询时和对整体数据进行查询) 表分区的好处 通过对表进行分区,可以获得以下的好处: 1)增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 2)维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可; 3)均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能; 4)改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速

深入学习分区表及分区索引(详解oracle分区)

下载的,写的非常好,给大家分享下。 什么时候使用分区: 1、大数据量的表,比如大于2GB。一方面2GB文件对于32位os是一个上限,另外备份时间长。 2、包括历史数据的表,比如最新的数据放入到最新的分区中。典型的例子:历史表,只有当前月份的数据可以被修改,而其他月份只能read-only ORACLE只支持以下分区:tables, indexes on tables, materialized views, and indexes on materialized views 分区对SQL和DML是透明的(应用程序不必知道已经作了分区),但是DDL 可以对不同的分区进行管理。 不同的分区之间必须有相同的逻辑属性,比如共同的表名,列名,数据类型,约束; 但是可以有不同的物理属性,比如pctfree, pctused, and tablespaces. 分区独立性:即使某些分区不可用,其他分区仍然可用。 最多可以分成64000个分区,但是具有LONG or LONG RAW列的表不可以,但是有CLOB or BLOB列的表可以。 可以不用to_date函数,比如: alter session set nls_date_format='mm/dd/yyyy'; CREATE TABLE sales_range (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), sales_date DATE) PARTITION BY RANGE(sales_date) ( PARTITION sales_jan2000 VALUES LESS THAN('02/01/2000'),

Oracle数据库基础

Oracle 数据库基础 数据库是我们安装完产品后建立的,可以在同一台主机上存在8i,9i,10g,11g等多个数据库产品,一套产品可以建立多个数据库,每个数据库是独立的。每个数据库都有自己的全套相关文件,有各自的控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件等等。 其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件; 参数文件(parameter file)口令文件(password file)是非数据库文件 我们的表存储在数据库中 数据库不能直接读取 我们通过实例(instance)来访问数据库 数据库实例 实例由内存和后台进程组成 实例是访问数据库的方法 初始化参数控制实例的行为 一个实例只能连接一个数据库

启动实例不需要数据库 产品安装好 有初始化参数文件 就可以启动实例 与是否存在数据库无关 实例内存分为SGA 和PGA SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。 PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收. 后台进程是实例和数据库的联系纽带 分为核心进程和非核心进程 当前后台进程的查看 SQL> select name,description from v$bgprocess where paddr<>'00'; NAME DESCRIPTION

oracle数据库索引的理解与总结

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 例如这样一个查询:SELECT * FROM TABLE1 WHERE ID = 44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的。 建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。 虽然建立索引能加快对表中记录的查询或者排序速度,但是并不是索引建得越多越好,这就需要我们了解使用索引过程中,索引的一些优点以及缺陷: 使用索引的好处: 创建索引可以大大提高系统的性能: 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。使用索引的一些不足: 第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 索引是建立在数据库表中的某些列的上面。在创建索引的时候,应该考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引: ?在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; ?在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; ?在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的; ?在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间; ?在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。 同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点: ?对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。 ?对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了

oracle 分区技术总结

Oracle分区技术总结 电信事业部 张雷

一.分区概述: 为了简化数据库大数据量的管理,ORACLE推出了分区选项。分区将表或索引分离在若干不同的表空间上,用分而治之的方法来支撑无限膨胀的大表和索引,从而提高大表和索引在物理一级的可管理性。将它们分割成较小的分区可以改善表和分区的维护、备份、恢复、事务及查询性能。 二.分区的特点: ◆所有的分区的逻辑属性是相同的,但他们的物理属性可以不同。 ◆分区的剪枝(Partition Pruning) Oracle server 可以自动识别分区,根据select 语句所指定的选择条件,只查询 有用的分区。如果语句的条件中对分区字段使用了函数,优化器则不能进行分区剪 枝,但to_date函数除外。 ◆分区的优点 (1) 高可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍 然可以使用; (2) 减少关闭时间:如果系统故障只影响表的一部分分区,那么只有这部分分区需 要修复,故能比整个大表修复花的时间更少; (3) 维护轻松:对于大型的历史数据表,将其分区,分别管理和方便地添加和删除。; (4) 均衡I/O:可以把表的不同分区分配到不同的磁盘来平衡I/O改善性能; (5) 改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行 执行,可使运行速度更快; (6) 基于分区的 join 操作,会提高查询性能 (7) 分区对用户透明,最终用户感觉不到分区的存在。 三.分区的方法: ◆Range Partitioning (范围分区)

范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据城市分区,根据时间进行分区等。实现方法就是在CREATE TABLE命令中增加PARTITION BY RANGE子句。 例如:CREATE TABLE UNITELE.BB_ACCOUNT_INFO_T ( ACCOUNT_ID NUMBER(10), CITY_CODE V ARCHAR2(8 BYTE) NOT NULL, CUSTOMER_ID NUMBER(10) NOT NULL, MAIL_SERVICE NUMBER(4), UNIT_COUNT NUMBER(8) DEFAULT 0, REMARK V ARCHAR2(256 BYTE), IF_VALID NUMBER(2) DEFAULT 1, ACCOUNT_FA VOUR_ID NUMBER(8) DEFAULT 0 NOT NULL ) TABLESPACE TS_TAB_BASE PARTITION BY RANGE (CITY_CODE) ( PARTITION PART840 V ALUES LESS THAN ('841'), PARTITION PART_OTHER V ALUES LESS THAN (MAXV ALUE) ); 分区的字段可以是一个列,也可以是多个列。 ★范围分区的特点 a、Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等。 b、数据管理能力强,可以进行数据迁移,数据备份以及数据交换的操作。 c、范围分区的数据可能分布不均匀。 d、范围分区与记录值相关,实施难度和可维护性相对较差。有可能出现一个表分 成上万个分区,还可能出现后期拆分分区,增加分区的操作。 Hash Partitioning(散列分区);

Oracle 文档

Oracle 文档 本页包含Oracle 数据库、融合中间件、Beehive 和应用产品/E-Business Suite 的最新文档链接。 搜索Oracle 文档 Sun 文档 按类别浏览: 数据库 Oracle Database 11g第 2 版Oracle Database 11g第 1 版Oracle Database Lite 10g第 3 版Oracle Database 10g第 2 版Oracle 网关10g 第 2 版 Oracle Database Lite 10g第 2 版Oracle Communications Data Model Oracle Content Database 10g第1 版 Oracle Database 10g第 1 版Oracle Multimedia (Oracle inter Media) Oracle Spatial Oracle Fail Safe Oracle TimesTen In-Memory Database Oracle Berkeley DB Oracle Berkeley DB Java 版Oracle Berkeley

10g第 1 版Oracle 网关10g 第 1 版 Oracle9i Database 第2版 Oracle9i Database 第1版 适用于 Oracle9i(第1版和第2 版)的Oracle 网关Berkeley DB XML Oracle 9i Lite Oracle Secure Backup Oracle Application Express Oracle Audit Vault Oracle 数据访问组件Oracle SQL Developer 中间件 Oracle | BEA 产品文档 10g第3版 (10.3) Oracle Product Data Quality Oracle GoldenGate Oracle Fusion Middleware 11g 第 1 版 (11.1.1) Oracle Identity Management 10g (10.1.4) Oracle JRockit R28.0Oracle Application Server 10g第 3 版(10.1.3.1) Oracle Application Server 10g第 3 版(10.1.3) Oracle Application Server 10g第 2 版(10.1.2.0.2) Oracle Application Server 10g 第 2 版 (10.1.2) Oracle

oracle大表分区

摘要:本篇文章介绍了ORACLE数据库的新特性—分区管理,并用例子说明使用方法。 关键词:ORACLE,分区 一、分区概述: 为了简化数据库大表的管理,ORACLE8推出了分区选项。分区将表分离在若干不同的表空间上,用分而治之的方法来支撑无限膨胀的大表,给大表在物理一级的可管理性。将大表分割成较小的分区可以改善表的维护、备份、恢复、事务及查询性能。针对当前社保及电信行业的大量日常业务数据,可以推荐使用ORACLE8的该选项。 二、分区的优点: 1 、增强可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍然可以使用; 2 、减少关闭时间:如果系统故障只影响表的一部分分区,那么只有这部分分区需要修复,故能比整个大表修复花的时间更少; 3 、维护轻松:如果需要重建表,独立管理每个分区比管理单个大表要轻松得多; 4 、均衡I/O:可以把表的不同分区分配到不同的磁盘来平衡I/O改善性能;

5 、改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行,可使运行速度更快; 6 、分区对用户透明,最终用户感觉不到分区的存在。 三、分区的管理: 1 、分区表的建立: 某公司的每年产生巨大的销售记录,DBA向公司建议每季度的数据放在一个分区内,以下示范的是该公司1999年的数据(假设每月产生30M的数据),操作如下: STEP1、建立表的各个分区的表空间: CREATE TABLESPACE ts_sale1999q1 DATAFILE ‘/u1/oradata/sales/sales1999_q1.dat’ SIZE 100M DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0) CREATE TABLESPACE ts_sale1999q2 DATAFILE ‘/u1/oradata/sales/sales1999_q2.dat’ SIZE 100M DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0)

Oracle数据库基本知识点

1、数据库基本语句 (1)表结构处理 创建一个表:cteate table 表名(列1 类型,列2 类型); 修改表的名字 alter table 旧表名 rename to 新表名 查看表结构 desc 表名(cmd) 添加一个字段 alter table 表名 add(列类型); 修改字段类型 alter table 表名 modify(列类型); 删除一个字段 alter table 表名 drop column列名; 删除表 drop table 表名 修改列名 alter table 表名 rename column 旧列名 to 新列名; (2)表数据处理 增加数据:insert into 表名 values(所有列的值); insert into 表名(列)values(对应的值); 更新语句:update 表 set 列=新的值,…[where 条件] 删除数据:delete from 表名 where 条件 删除所有数据,不会影响表结构,不会记录日志, 数据不能恢复--》删除很快: truncate table 表名 删除所有数据,包括表结构一并删除: drop table 表名 去除重复的显示:select distinct 列 from 表名 日期类型:to_date(字符串1,字符串2)字符串1是日期的字 符串,字符串2是格式 to_date('1990-1-1','yyyy-mm-dd')-->返回日期的 类型是1990-1-1 (3)查询语句 1)内连接 select a.*,b.* from a inner join b on a.id=b.parent_id

公司Oracle ERP操作手册-中文辅助版

ERP系统 用户操作手册 Account Payables模块 文档作者: 创建日期: 确认日期: 2005-10-11 控制编码: AAVID/TR100/AP 文档版本: 1.0 审批: 拷贝数_____

文档控制记录更改 审阅人 分发

目录 文档控制......................................................................................................................................... 错误!未定义书签。目录................................................................................................................................................. 错误!未定义书签。 编写说明......................................................................................................................................... 错误!未定义书签。 使用对象..................................................................................................................................... 错误!未定义书签。 参考文档..................................................................................................................................... 错误!未定义书签。 概述................................................................................................................................................. 错误!未定义书签。 业务操作流程内容..................................................................................................................... 错误!未定义书签。 第一章、创建银行......................................................................................................................... 错误!未定义书签。 操作说明..................................................................................................................................... 错误!未定义书签。 适用范围 ................................................................................................................................. 错误!未定义书签。 主要业务 ................................................................................................................................. 错误!未定义书签。 注意事项 ................................................................................................................................. 错误!未定义书签。 操作过程..................................................................................................................................... 错误!未定义书签。 一.整理内部银行资料 (3) 二.银行资料录入 (3) 三.银行财务信息录入 (5) 四.定义银行付款单据 (7) 五.整理外部银行资料 (8) 六.外部供应商银行资料录入 (8) 七.员工供应商银行资料录入 (10) 第二章、创建供货商..................................................................................................................... 错误!未定义书签。 操作说明..................................................................................................................................... 错误!未定义书签。 适用范围 ................................................................................................................................. 错误!未定义书签。 主要业务 ................................................................................................................................. 错误!未定义书签。 注意事项 ................................................................................................................................. 错误!未定义书签。 操作过程..................................................................................................................................... 错误!未定义书签。 一.整理外部供货商信息资料 (12) 二.供货商信息录入 (12) 三.供货商银行信息分配 (18) 四.整理员工信息资料 (18) 五.员工信息资料录入 (18) 六.员工供货商资料分配 (18) 七.员工供货商财务信息录入 (21) 八.员工供货商银行信息分配 (22) 第三章、预付款及付款................................................................................................................. 错误!未定义书签。 操作说明..................................................................................................................................... 错误!未定义书签。 适用范围 ................................................................................................................................. 错误!未定义书签。 主要业务 ................................................................................................................................. 错误!未定义书签。 注意事项 ................................................................................................................................. 错误!未定义书签。 操作过程..................................................................................................................................... 错误!未定义书签。

全文检索系统整体方案

1全文检索系统方案 1.1全文检索需求 1)系统提供模糊检索、分类搜索、高级复合搜索、全文检索、图片内容 检索、跨库检索等多种检索途径; 2)支持字索引和词索引; 3)检索条件具有完整的关键词布尔逻辑运算AND、OR、NOT能力,支持 复合式布尔逻辑运算查询,并且可以配合多组左括号"("与右括号")"作 关键词查询优先级的设置; 4)提供用户多次递进查询的功能,用户可根据上一次查询关键词得到的 检索结果集,增加查询关键词与缩小搜索日期范围,而得到更准确的 查询结果集; 5)能够支持对以上文件中的中文(简体/繁体)、英文、日语、韩语内容 实现关键字检索; 6)支持对Word、TXT、PDF等多种主流文档格式全文检索,并提供开发 接口以支持特殊文档格式的全文检索; 7)在数据源数据发生更新时,能在索引库中反映出来,保证搜索的信息 为最新,即支持增量索引机制; 8)用户可自行设定时间,让系统自动定时进行更新索引; 9)对于百万级记录数的搜索以及结合模糊搜索等查询方式,搜索时间不 得超过10秒; 10)提供跨数据源、数据格式的搜索;

11)同过相关性搜索,能够把和搜索条件相关联的信息搜索出来; 12)不但能够对图片的描述信息进行搜索,还能对图片内容的检索; 13)提供COM与SOAP的搜索接口(Interface) 可让其它应用程序或查询网 页能够提供用户查询入口和查询结果的呈现,用户可通过应用程序或 浏览器访问全文检索服务器,提交查询条件,可在浏览器中查看检索 结果; 14)查询结果集中应包含结果集总数、命中的结果文件的完整路径,以及 符合关键词出现的内容片断; 15)在搜索结果集中,关键词应被标识出来,用特殊的字体及颜色和其他 文字进行区别,查询者可在查询结果片断中一目了然的看到关键词出 现的位置; 16)查询结果可按照关键词命中次数,命中结果文件的修改时间,大小等 条件进行排序; 17)可提供用户对检索命中结果文件在索引库中进行标记,从而再次检索 时,不在标记过的文件中进行查询; 1.2全文检索系统总体方案 系统将采用以下全文检索流程。

相关文档
相关文档 最新文档