当前位置:2019全年资料内部公开 > 全文索引 >

如何更好的使用Oracle全文索引

  千锋教育专注HTML5前端、Java开发、Python全栈、UI设计、物联网嵌入式、区块链、大数据、人工智能、软件测试、PHP、云计算、信息安全、Unity游戏开发、红帽RHCE认证培训服务对多字段建立全文索引 很多时候需要从多个文本字段中查询满足条件的记录,这时就需要建立针对多个字段的全文索引,例如需要从pmhsubjects(专题表)的subjectname(专题名称)和briefintro(简介)上进行全文检索,则需要按以下步骤进行操作: ?? 建议多字段索引的preference 以ctxsys登录,并执行: 全文索引的维护 对于TEXT索引,当应用程序对基表进行DML操作后,对基表的索引维护是必须的。索引维护包括索引同步和索引优化。 在索引建好后,我们可以在该用户下查到Oracle自动产生了以下几个表:(假设索引名为myindex): DR$myindex$I、DR$myindex$K、DR$myindex$R、DR$myindex$N其中以I表最重要,可以查询一下该表,看看有什么内容: 这里就不列出查询接过了。可以看到,该表中保存的其实就是Oracle 分析你的文档后,生成的term记录在这里,包括term出现的位置、次数、hash值等。当文档的内容改变后,可以想见这个I表的内容也应该相应改变,才能保证Oracle在做全文检索时正确检索到内容(因为所谓全文检索,其实核心就是查询这个表)。这就用到sync(同步) 和 optimize(优化)了。 同步(sync): 将新的term 保存到I表; 优化(optimize): 清除I表的垃圾,主要是将已经被删除的term从I表删除。 当基表中的被索引文档发生insert、update、delete操作的时候,基表的改变并不能马上影响到索引上直到同步索引。可以查询视图CTX_USER_PENDING查看相应的改动。例如: 同步和优化方法: 可以使用Oracle提供的ctx_ddl包同步和优化索引 一. 对于CTXCAT类型的索引来说, 当对基表进行DML操作的时候,Oracle自动维护索引。对文档的改变马上反映到索引中。CTXCAT是事务形的索引。 索引的同步 在对基表插入,修改,删除之后同步索引。推荐使用sync同步索引。语法: 指定一个大的内存时候可以加快索引效率和查询速度,且索引有较少的碎片 part_name 同步哪个分区索引。 parallel_degree 并行同步索引。设置并行度。 例如: 同步索引myindex:Exec ctx_ddl.sync_index (myindex); 实施建议:建议通过oracle的job对索引进行同步 索引的优化 经常的索引同步将会导致你的CONTEXT索引产生碎片。索引碎片严重的影响了查询的反应速度。你可以定期优化索引来减少碎片,减少索引大小,提高查询效率。

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

http://cheonaekim.com/quanwensuoyin/430.html
点击次数:??更新时间2019-06-30??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】