ITPub博客

首页 > 数据库 > Oracle > oracle全文索引之SECTION GROUP_3_HTML_SECTION_GROUP

oracle全文索引之SECTION GROUP_3_HTML_SECTION_GROUP

原创 Oracle 作者:jolly10 时间:2009-05-25 12:06:59 0 删除 编辑
这篇文章介绍Oracle全文索引的SECTION GROUP属性中的HTML_SECTION_GROUP。[@more@]

虽然BASIC_SECTION_GROUP 已经可以解决很多基本的节搜索问题,但是Oracle还是推荐对于HTML文档使用专门定义的HTML_SECTION_GROUP属性。这是由于 HTML文档具有很多不规范的表示方法,使用HTML_SECTION_GROUP能够更好的识别HTML文档的机构。另 外,BASIC_SECTION_GROUP不支持不匹配的括号、注释表示和属性等。

下面通过一个简单的例子来看一下HTML_SECTION_GROUP和BASIC_SECTION_GROUP的区别。HTML_SECTION_GROUP支持META标签中的NAME/CONTENT属性对的查询,下面看具体的例子。

SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));

表已创建。

SQL> INSERT INTO T VALUES (1, 'README.HTML');

已创建 1 行。

SQL> COMMIT;

提交完成。

SQL> CONN CTXSYS/CTXSYS@YANGTK
已连接。
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_FILE', 'FILE_DATASTORE');
3 CTX_DDL.SET_ATTRIBUTE('TEST_FILE', 'PATH', 'F:');
4 CTX_DDL.CREATE_SECTION_GROUP('TEST_BASIC', 'BASIC_SECTION_GROUP');
5 CTX_DDL.ADD_FIELD_SECTION('TEST_BASIC', 'MTAG', 'META@HTML');
6 CTX_DDL.CREATE_SECTION_GROUP('TEST_HTML', 'HTML_SECTION_GROUP');
7 CTX_DDL.ADD_FIELD_SECTION('TEST_HTML', 'MTAG', 'META@HTML');
8 END;
9 /

PL/SQL 过程已成功完成。

下面看一下README.HTML文档的内容:



Oracle Ultra Search Sample Crawler Agent Readme



Oracle Ultra Search Sample Crawler Agent Readme


Table of Contents


1. Introduction
2. Sample agent files
3. Setting up the Sample Crawler Agent

1. Introduction



Oracle Ultra Search provides a sample implementation of user defined data source
agent which uses the Ultra Search agent API. The purpose of this sample is to
provide a concrete illustration on the usage of the agent APIs.

Upon invocation this sample agent connects to a specified Oracle database and
retrieve the contents of a table for the crawler to collect and index.

The sample agent are fully functional and can be customized to adapt to other
database based data source. This agent performs the following task:



  • Reading of data source parameters

  • Connection to the database that contains the data source

  • Initialization of fetching document URL and attributes from the data source

  • Fetching of document URL and attributes from the data source

  • Disconnection from the data source


Complete and comprehensive documentation on agent API is provided in the following
document:



  • Ultra Search Crawler agent API




观察上面的META标签,里面包含NAME/CONTENT属性对,可以根据例子的方式,基于META中名称的值建立FIELD,来搜索CONTENT的值。

SQL> CONN YANGTK/YANGTK@YANGTK
已连接。
SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS('DATASTORE CTXSYS.TEST_FILE FILTER CTXSYS.NULL_FILTER
3 SECTION GROUP CTXSYS.TEST_BASIC');

索引已创建。

SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'DATABASE') > 0;

ID DOCS
---------- ----------------------------------------
1 README.HTML

SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'SECTION WITHIN MTAG') > 0;

未选定行

SQL> DROP INDEX IND_T_DOCS;

索引已丢弃。

SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS('DATASTORE CTXSYS.TEST_FILE FILTER CTXSYS.NULL_FILTER
3 SECTION GROUP CTXSYS.TEST_HTML');

索引已创建。

SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'DATABASE') > 0;

ID DOCS
---------- ----------------------------------------
1 README.HTML

SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'SECTION WITHIN MTAG') > 0;

ID DOCS
---------- ----------------------------------------
1 README.HTML

从这个例子可以看出,对于HTML文档来说,使用HTML_SECTION_GROUP可以拥有更多的功能。

最后提醒一下,无论是FIELD_SECTION还是ZONE_SECTION,表示文档的TAG标签都是大小写敏感的,其大小写需要和原文中匹配。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/271283/viewspace-1022450/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-20

  • 博文量
    263
  • 访问量
    769079