您的位置: 飞扬精品软件园 >> 文章中心 >> 系统教程 >> Unix系统 >> 在UNIX服务器上设置Oracle8i全文检索

相关文章链接

本类文章排行

最新新闻资讯

    在UNIX服务器上设置Oracle8i全文检索

    在UNIX服务器上设置Oracle8i全文检索


    • 阅览次数: 文章来源: 原文作者: 整理日期: 2010-07-12


      其次,要配置服务器端的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对应相同。

      修改完成后,重新启动listener (先用lsnrctl stop, 然后 lsnrctl start), 然后,使用tnsping 来测试一下是否配置正确:

      tnsping extproc_connection_data 或者

      tnsping extproc_connection_data.world,假如配置正确,会显示:

      Attempting to contact (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)) OK(140毫秒)

      否则请检查你的上述两个文件,并注重,在修改后一定要重新启动listener,但并不需要重新启动数据库。

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

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

      basic_lexer: 针对英语。它能根据空格和标点来将英语单词从句子中分离,还能自动将一些出现频率过高已经失去检索意义的单词作为‘垃圾’处理,如if , is 等,具有较高的处理效率。但该lexer应用于汉语则有很多问题,由于它只认空格和标点,而汉语的一句话中通常不会有空格,因此,它会把整句话作为一个term,事实上失去检索能力。以‘中国人民站起来了’这句话为例,basic_lexer 分析的结果只有一个term ,就是‘中国人民站起来了’。此时若检索‘中国’,将检索不到内容。

    [1] [2] [3] [4] [5]


查看所有评论

网友对在UNIX服务器上设置Oracle8i全文检索的评论

网名:
主题:
内容:
验证码: