`

Oracle全文索引

阅读更多
对cmng_custominfo 表中的address字段做全文检索:
1,在oracle9201中需要创建一个分词的东西:
BEGIN
ctx_ddl.create_preference ('SMS_ADDRESS_LEXER', 'CHINESE_LEXER');
--ctx_ddl.create_preference ('my_lexer', 'chinese_vgram_lexer'); 不用
end;
2,创建全文检索:
CREATE INDEX INX_CUSTOMINFO_ADDR_DOCS ON cmng_custominfo(address) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('LEXER SMS_ADDRESS_LEXER');
3,查询时候,使用:
select * from cmng_custominfo where contains (address, '金色新城')>1;
4,需要定期进行同步和优化:
同步:根据新增记录的文本内容更新全文搜索的索引。
begin
ctx_ddl.sync_index('INX_CUSTOMINFO_ADDR_DOCS');
end;
优化:根据被删除记录清除全文搜索索引中的垃圾
begin
ctx_ddl.optimize_index('INX_CUSTOMINFO_ADDR_DOCS', 'FAST');
end;
5,采用job做步骤4中的工作:
1)该功能需要利用oracle的JOB功能来完成
因为oracle9I默认不启用JOB功能,所以首先需要增加ORACLE数据库实例的JOB配置参数:
job_queue_processes=5
重新启动oracle数据库服务和listener服务。
2)同步 和 优化
--同步 sync:
variable jobno number;
BEGIN
DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''INX_CUSTOMINFO_ADDR_DOCS'');', SYSDATE, 'SYSDATE + (1/24/4)');
 commit;
END;
--优化
variable jobno number;
begin
 DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.optimize_index(''INX_CUSTOMINFO_ADDR_DOCS'',''FULL'');', SYSDATE, 'SYSDATE + 1');
 commit;
END;
其中, 第一个job的SYSDATE + (1/24/4)是指每隔15分钟同步一次,第二个job的SYSDATE + 1是每隔1天做一次全优化。具体的时间间隔,可以根据应用的需要而定
6,索引重建
重建索引会删除原来的索引,重新生成索引,需要较长的时间。
重建索引语法如下:
ALTER INDEX INX_CUSTOMINFO_ADDR_DOCS REBUILD;

据网上一些用家的体会,oracle重建索引的速度也是比较快的,有一用家这样描述:

Oracle 的全文检索建立和维护索引要比ms sql server都要快得多,笔者的65万记录的一个表建立索引只需要20分钟,同步一次只需要1分钟。
因此,也可以考虑用job的办法定期重建索引。
分享到:
评论

相关推荐

    ORacle 全文索引

    Oracle全文索引是Oracle数据库系统中的一个重要特性,它允许用户对数据库中的文本数据进行高效的全文搜索。全文索引使得在海量文本数据中查找特定词汇或短语变得快速且简便,对于那些需要处理大量文本信息的应用程序...

    《Oracle_全文索引_详细介绍》_40页.pdf

    ### Oracle全文索引详解 #### 一、Oracle全文索引概述 Oracle全文索引是一种特殊类型的索引,它主要用于提高基于文本的查询性能。自从Oracle 7.3版本开始引入了这一特性,允许用户通过Oracle服务器提供的上下文...

    Oracle全文索引培训教材

    Oracle全文索引培训教材,内容详细,从原理到细节的深度剖析!

    oracle 全文检索 全文索引 多列字段索引

    oracle 全文检索 oracle全文索引 多列字段检索,匹配多列字段搜索功能。

    Oracle自带全文索引

    在使用Oracle全文索引之前,需要进行一些必要的准备工作。首先,检查数据库是否已经存在`ctxsys`用户,因为全文索引的功能是基于这个特定的系统用户提供的。如果数据库没有这个用户,需要手动安装。安装过程包括创建...

    Oracle 全文检索的使用及内部机制

    1. 如何创建和使用全文索引, 文中包含详细的步骤 2. 当数据发生变化时,如何更新全文索引,并且如何通过Job实现自动化 3. 数据如何设计才能让全文索引查询更精确 4. 全文索引的实现原理 5. 常见问题及解决方法 6. 如何...

    oracle全文检索

    Oracle全文检索技术是数据库管理系统Oracle中用于高效查找和分析文本数据的一种功能。它在不同的Oracle版本中有着不同的名称,如Oracle8.0.x中的ConText,Oracle8i中的interMedia Text,以及从Oracle9i开始的Oracle ...

    oracle10g全文索引自动同步语句使用方法

    Oracle10g中context类型的全文索引也可以自动同步了。10g中新引入了2种同步的方式,现在有3种 1、ctx_ddl.sync_index2、sync(on commit)3、sync( every …) in parameter setting while creating index sync(on ...

    详解Oracle数据库中文全文索引.docx

    "Oracle数据库中文全文索引" Oracle数据库中文全文索引是Oracle数据库的一种功能强大的文本检索技术,通过使用Oracle Text,使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用...

    Oracle数据库索引的维护

    正在看的ORACLE教程是:Oracle数据库索引的维护。 本文只讨论Oracle中最常见的索引,即是B-tree索引。本文中涉及的数据库版本是Oracle8i。 一. 查看系统表中的用户索引 在Oracle中,SYSTEM表是安装数据库时自动建立...

    ORACLE索引详解及SQL优化

    3. **操作符**:某些操作符如`NOT`、`BETWEEN`、`LIKE`的模糊匹配可能导致索引失效,除非使用了前缀索引或全文索引。 4. **索引选择性**:索引的选择性越高,区分度越大,使用索引的效果越好。如果索引列的值过于...

    详解Oracle数据库中文全文索引

    ### 详解Oracle数据库中文全文索引 Oracle数据库的全文检索技术已经非常成熟和完善,其中Oracle Text使得Oracle 9i具备了强大的文本检索能力和智能化的文本管理能力。在不同的Oracle版本中,这一技术有着不同的名称...

    Oracle数据库全文索引查询模板的使用

    Oracle数据库全文索引查询模板是优化全文搜索的关键特性,它允许开发者在CONTEXT和CTXCAT索引上使用特定的查询语法,以实现更复杂的文本检索功能。在Oracle中,全文索引主要用于提高对文本数据的搜索效率,特别是...

    Oracle查询优化技术在标准化服务平台中的应用.pdf

    通过建立Oracle全文索引,系统能够快速匹配和检索含有特定词汇的记录,大大缩短了查询时间,提升了用户查询效率。全文索引利用了高级文本分析技术,能够处理复杂的查询语句,并且支持模糊匹配,适用于标准信息库等...

    oracle 全文检索实现

    Oracle 全文检索实现的总体架构图由五个部分组成:XML 配置文件、读取器、索引器、索引库和检索器。其中,XML 配置文件存储数据库的配置信息,包括需要全文检索的表名和列名。读取器读取 XML 配置文件中的信息,并...

Global site tag (gtag.js) - Google Analytics