Oracle全文检索方面的研究(全4)(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:19 点击:

Select * from my_sec1 where contains (docs, use) > 0;

节搜索的另一个主要功能就是可以限制查询的范围,上面的文档包含了两部分,标题和正文,

其中标题使用标签<heading>,正文使用标签<context>,我们可以对basic_section_group 添加

区域属性,运行查询在文档的某个范围内进行

Drop index ind_my_sec1;

Begin

ctx_ddl.add_zone_section(test_basic, head, heading);

End;

Create index ind_my_sec1 on my_sec1(docs) indextype is ctxsys.context

parameters (section group test_basic);

Select * from my_sec1 where contains (docs, title) > 0;

--在head 里面查询

Select * from my_sec1 where contains (docs, title within head) > 0;

 

3.4.3 Html_section_group

Html 文档具有很多不规范的表示方法,oracle 建议使用html_section_group 以便能够得到更

好的识别

--定义html_section_group

begin

ctx_ddl.create_section_group(htmgroup, HTML_SECTION_GROUP);

end;

create index myindex on docs(htmlfile) indextype is ctxsys.context

parameters(filter ctxsys.null_filter section group htmgroup);

无论是field_section 还是zone_section,表示文档的tag 标签都是大小写敏感的,其大小写需

要和原文中匹配

 

3.4.4.Xml_section_group

Xml 文档的格式要求比html 文档严谨、规范, 这也使得xml_section_group 比

html_section_group 具有了更多的功能

例子:

Create table my_sec2 (id number, docs varchar2(1000));

Insert into my_sec2 values (1, context.xml);

commit;

/

--定义xml_section_group

Begin

ctx_ddl.create_preference(test_file, file_datastore);

ctx_ddl.set_attribute(test_file, path, /opt/tmp);

ctx_ddl.create_section_group(test_html, html_section_group);

ctx_ddl.create_section_group(test_xml, xml_section_group);

End;

Create index ind_t_docs on my_sec2 (docs) indextype is ctxsys.context

parameters(datastore ctxsys.test_file filter ctxsys.null_filter section group

ctxsys.test_xml)

Begin

ctx_ddl.add_attr_section(test_xml, name, const@name);

End;

Select * from my_sec2 where contains (docs, complete within name) > 0;

 

3.4.5.Auto_section_group

Xml_section_group 的增强型,对于xml_section_group 用户需要自己添加需要定义的节组,

而使用auto_section_group,则oracle 会自动添加节组以及属性信息

 

3.4.6 Path_section_group

和auto_section_group 十分类似,path_section_group 比auto_section_group 增加了haspath 和

inpath 操作,但是path_section_group 不支持add_stop_section 属性

 

3.4.7 参考脚本

--建立null_section_group

Create index ind_m_sec on my_sec(docs) indextype is ctxsys.context

parameters (section group ctxsys.null_section_group);

--建立basic_section_group

Begin

Ctx_ddl.create_section_group(test_basic, basic_section_group);

End;

Begin

ctx_ddl.add_zone_section(test_basic, head, heading); --设定节查询

End;

Create index ind_my_sec1 on my_sec1(docs) indextype is ctxsys.context

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Table函数使用简介
  • Oracle数据库Constraint约束的常用操作及异常处理
  • Bulk Collect性能分析(zz)
  • export/import的使用
  • OCP043第十五讲 Database Security
  • ORACLE10gr2数据导入MySQL方案
  • oracle 让sys用户可以使用isqlplus
  • 在oracle数据库下使用iSQL*Plus DBA访问数据库
  • Oracle行列转换小结
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1