请教关于ORACLE全文检索的.我设置了对本地系统文件进行全文检索.
内容如下:
/*
全文检索(oracle text) 
Oracle Text使 
Oracle9i具备了强大的文本检索能力和智能化的文本管理能力,Oracle 
Text是 
Oracle9i采用的新名称,在 
oracle8/8i中被称为 
oracle intermedia text,oracle8以前是 
oracle context cartridge。Oracle Text的索引和查找功能并不局限于存储在数据库中的数据。
它可以对存储于文件系统中的文档进行检索和查找,并可检索超过 
150种文档类型,包括 
Microsoft Word、PDF和 
XML。Oracle Text查找功能包括模糊查找、词干查找(搜索 
mice
和查找 
mouse)、通配符、相近性等查找方式,以及结果分级和关键词突出显示等。你甚至
可以增加一个词典,以查找搭配词,并找出包含该搭配词的文档。 
*/现在我把这个段内容分别放到 1.txt , 2.log ,3.doc,4.pdf 中.(就是分别以文本\日志\WORD\PDF文件形式保存)
然后创建索引 create index myindex on mytable1(docs) indextype is ctxsys.context parameters ('datastore COMMON_DIR');然后我用 select  Score(1), mytable1.* from mytable1 where contains(docs,'全文%' , 1)>0 来检索 .就能查到 3.doc,4.pdf 两条记录.
而用 select  Score(1), mytable1.* from mytable1 where contains(docs,'ora%' , 1)>0 来检索,却能查到所有的 1.txt,2.log,3.doc,4.pdf 四条记录.
请教一下高手。这个是为什么呢? 怎么样设置 才能使用 中文搜索时 把 txt和log中的记录也检索出来呢?

解决方案 »

  1.   

    oracle板块的老大年把没上了。呵呵
    你要查询文件名还是文件中的内容。我的是oracle10g的是可以的阿、查询中文内容跟中文文件都可以
    如果你是后插入的最好删掉索引再重新建一遍
      

  2.   

    Oracle 9i全文检索技术Oracle一直致力于全文检索技术的研究,当Oracle9i Rlease2发布之时,Oracle数据库的全文检索技术已经非常完美,Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名称,在Oracle8/8i中它被称作Oracle interMedia Text,在Oracle8以前它的名称是Oracle ConText Cartridge。使用Oracle9i和Oracle Text,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据库应用程序中充分利用Oracle Text搜索,应用范围可以是现有应用程序中可搜索的注释字段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。Oracle Text支持Oracle数据库所支持的大多数语言的基本全文搜索功能。本文将介绍如何使用Oracle9i的全文检索技术来为自己的应用提供一个优秀的解决方案。 1 Oracle Text的体系架构 下图是Oracle Text的体系架构。    图1 Oracle Text的体系架构
    以上面的体系架构图为基础,Oracle Text 索引文档时所使用的主要逻辑步骤如下: (1)数据存储逻辑搜索表的所有行,并读取列中的数据。通常,这只是列数据,但有些数据存储使用列数据作为文档数据的指针。例如,URL_DATASTORE 将列数据作为 URL 使用。 (2)过滤器提取文档数据并将其转换为文本表示方式。存储二进制文档 (如 Word 或 Acrobat 文件) 时需要这样做。过滤器的输出不必是纯文本格式 -- 它可以是 XML 或 HTML 之类的文本格式。 (3)分段器提取过滤器的输出信息,并将其转换为纯文本。包括 XML 和 HTML 在内的不同文本格式有不同的分段器。转换为纯文本涉及检测重要文档段标记、移去不可见的信息和文本重新格式化。 (4)词法分析器提取分段器中的纯文本,并将其拆分为不连续的标记。既存在空白字符分隔语言使用的词法分析器,也存在分段复杂的亚洲语言使用的专门词法分析器。 (5)索引引擎提取词法分析器中的所有标记、文档段在分段器中的偏移量以及被称为非索引字的低信息含量字列表,并构建反向索引。倒排索引存储标记和含有这些标记的文档。 2 简单的示例 这里先给出一个简单示例说利用Oracle Text实现全文检索的方法与步骤,在后面在进行具体的说明。Orcale9i提供了Oracle Text Manager可以简化许多工作,所有在Oracle Text Manager中完成的工作,都可以在通过PL/SQL来实现。要使用Oracle Text,必须具有CTXAPP角色或者是CTXSYS用户。Oracle Text为系统管理员提供CTXSYS用户,为应用程序开发人员提供CTXAPP角色。 CTXSYS用户可执行以下任务:启动Oracle Text服务器,执行CTXAPP角色的所有任务。 具有CTXAPP角色的用户可执行以下任务: 创建索引,管理 Oracle Text 数据字典,包括创建和删除首选项,进行Oracle Text 查询,使用 Oracle Text PL/SQL程序包。