科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Oracle全文索引设置步骤(二)

Oracle全文索引设置步骤(二)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

tem方案下的DOM_1_DOCLIB中的CURRENTTEXT字段,首选项中选择chinese_lexer 。   这样建立的全文检索索引,就会使用chinese_vgram_lexer作为分析器。   4.在索引建好后。

作者:中国IT实验室 来源:中国IT实验室 2007年9月14日

关键字: 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

  3、设置tnsnames.ora

  其次,要配置服务器端的tnsnames.ora文件。该文件的位置在$ORACLE_HOME/network/admin下面。同样可以通过运行netasst来进行配置。

  在tnsnames.ora文件中需要增加如下一项:

    EXTPROC_CONNECTION_DATA,EXTPROC_CONNECTION_DATA.WORLD =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
    (SID = PLSExtProc)
    )   )

  注意其中,KEY 和SID必须与listener.ora中的key 和sid_name对应相同。

  三.设置词法分析器(lexer)

  Oracle 缺省使用basic_lexer这个分析器。basic_lexer针对英语。要指定使用中文分析器, 操作步骤:

  1.用ctxsys用户登陆intermedia text manager,口令ctxsys:

  2.选择首选项――〉语言指示器――〉创建,输入指示器的名字如chinese_lexer,选择lexer下的chinese_vgrnm_lexer 。

  3.建立intermedia索引,指定索引名,选择方案和表下的字段,例如system方案下的DOM_1_DOCLIB中的CURRENTTEXT字段,首选项中选择chinese_lexer 。

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

  4.在索引建好后,在该用户下查到Oracle自动产生了以下几个表,可以使用dba studio查看:(假设索引名为myindex):

DR$myindex$I,DR$myindex$K,DR$myindex$R,DR$myindex$N

  其中以I表最重要,查询该表:

select token_text, token_count from DR$I_RSK1$I where rownum<=20;

  可以看到该表中保存的是Oracle分析你的文档后,生成的term记录,包括term出现的位置、次数、hash值等。

  四.使用job定时同步和优化

  在intermedia索引建好后,如果表中的数据发生变化,增加或修改了记录,由于对表所发生的任何dml语句,都不会自动修改索引,因此,必须定时同步(sync)和优化(optimize)索引,以正确反映数据的变化。

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

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

  Oracle提供了一个ctx server来做这个同步和优化的工作,只需要在后台运行这个进程,它会监视数据的变化,及时进行同步。但存在许多问题。可以用下的两个job来完成(该job要建在和表同一个用户下):

    -- sync:
    VARIABLE jobno number;
    BEGIN
    DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''myindex'');',
    SYSDATE, 'SYSDATE + (1/24/4)');
    commit;
    END;

     

    -- optimizer
    VARIABLE jobno number;
    BEGIN
    DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.optimize_index(''myindex'',''FULL'');',
    SYSDATE, 'SYSDATE + 1');
    commit;
    END;

  其中,第一个job的SYSDATE + (1/24/4)是指每隔15分钟同步一次,第二个job的SYSDATE + 1是每隔1天做一次全优化。具体的时间间隔,你可以根据自己的应用的需要而定。至此,你的全文检索功能已设置完成。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章