`

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全文索引培训教材,内容详细,从原理到细节的深度剖析!

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

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

    Oracle数据库全文索引设置步骤

    Oracle的词法分析器针对 ZHS16GBK字符集的词法分析尚不够智能,只能机械地以字为单元进行匹配。对于utf8字符集的数据库有一个...本文将为大家介绍如何进行oracle全文索引设置的文档发给大家,适用于8i、9i各平台版本。

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

    Oracle_全文索引,

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

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

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

    Oracle全文索引的查询模板功能可以对在CONTEXT索引上使用CATSEARCH语法,或者在CTXCAT索引上使用CONTAINS语法。本文将为大家介绍Oracle数据库全文索引查询模板的使用。

    Oracle自带全文索引

     当需要在大量文章中通过关键字搜索文章时,Oracle自带的全文索引对于提高搜索性能非常有帮助,并且使用也很方便。  使用前的准备工作:  1、先查看oracle是否自带有ctxsys用户,如果没有该用户则不能使用全文...

    oracle全文检索

    主要是讲述了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数据库中文全文索引

    论文研究-全文索引技术在个人信息融合系统中的应用研究 .pdf

    全文索引技术在个人信息融合系统中的应用研究,何娟,,基于内容的全文检索技术广泛用于全文数据库中,为解决个人信息融合系统中大量多源异构信息的快速检索问题,将Oracle全文索引技术运

    oracle全文检索.pdf

    Oracle Text 的索引和查找功能并不局限于存储在数据库中的数据。 它可以对存储于文件系统中的文档进行检索和查找,并可检索超过150 种文档类型,包括 Microsoft Word、PDF 和XML。Oracle Text 查找功能包括模糊查找...

    oracle 三种索引

    oracle 三种索引的简单描述,位图、B树、全文索引。

    oracle 全文检索

    首先这里说oracle 全文检索,是针对我机器上的...然后,oracle全文检索还是很强大的,能够检索文本啊、还有其他多种格式的文档。我做的测试只是针对数据库中的某一个字段的检索。比如针对地址表中的地址进行检索。

    Oracle索引详解

    Oracle索引详解,索引的初步学习,从无到有。全文分为:索引的概念,创建、删除、修改索引。

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

    Oracle数据库的全文检索技术已经非常完美,Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名称,在Oracle8/8i中它被称作Oracle interMedia Text,在Oracle8...

    基于ORACLE数据库的全文检索技术的安装和使用方法

    文中主要讲述了ORACLE全文检索技术的安装和使用方法,方法非常简单,进行简单的试用也不存在问题,但是性能测试方面不是很理想,但是由于同我们目前的系统软件架构相符合,在目前的功能中应用应当不存在技术和性能...

Global site tag (gtag.js) - Google Analytics