oracle全文索引之SECTION GROUP_2_BASIC_SECTION_GROUP

jolly10發表於2009-05-25
這篇文章介紹Oracle全文索引的SECTION GROUP屬性中的BASIC_SECTION_GROUP。[@more@]NULL_SECTION_GROUP 其實並不真正支援節搜尋,而在支援節搜尋的SECTION_GROUP中,BASIC_SECTION_GROUP是最基礎的一種屬性,它只支援以開頭以結尾的結構的文件。這篇文章在介紹BASIC_SECTION_GROUP的同時,簡單介紹一下節搜尋。

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

Table created.

SQL> INSERT INTO T VALUES (1, 'TITLE
2 This is the contents of the example.
3 Use this example to test the basic_section_group.
');

1 row created.

SQL> INSERT INTO T VALUES (2, 'EXAMPLE
2 This line incluing the word title too.');

1 row created.

SQL> COMMIT;

Commit complete.

SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT;

Index created.

SQL> SELECT ID FROM T WHERE CONTAINS (DOCS, 'HEADING') > 0;

ID
----------
1
2

在HTML、XML等類似結構的文件中,除了用來顯示的內容外,還包括了大量用於控制結構的標識,而這些標識可能是不希望被索引的,而這就是SECTION GROUP其中的一個主要功能。

在上面的例子中,預設情況(NULL_SECTION_GROUP)肯定會將HEADING放入到索引鍵值中,但如果建立了BASIC_SECTION_GROUP則在

查詢文件的時候,HEADING、CONTEXT等標籤內容將不再被索引

SQL> DROP INDEX IND_T_DOCS;

Index dropped.

SQL> exec CTX_DDL.CREATE_SECTION_GROUP('TEST_BASIC', 'BASIC_SECTION_GROUP');

PL/SQL procedure successfully completed.

SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('SECTION GROUP TEST_BASIC');

Index created.

SQL> SELECT ID FROM T WHERE CONTAINS (DOCS, 'HEADING') > 0;

no rows selected

SQL> SELECT ID FROM T WHERE CONTAINS (DOCS, 'USE') > 0;

ID
----------
1


節搜尋的另一個主要功能就是可以限制查詢的範圍。如果上面的例子中,文件包含了兩部分,標題和正文,其中標題使用標籤

,正文使用標籤。因此,可以對BASIC_SECTION_GROUP新增區域屬性,執行查詢在文件的某個範圍內進行。

SQL> DROP INDEX IND_T_DOCS;

Index dropped.

SQL> exec CTX_DDL.ADD_ZONE_SECTION('TEST_BASIC', 'HEAD', 'HEADING');

PL/SQL procedure successfully completed.

SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('SECTION GROUP TEST_BASIC');

Index created.

SQL> SELECT ID FROM T WHERE CONTAINS (DOCS, 'TITLE') > 0;

ID
----------
1
2

SQL> SELECT ID FROM T WHERE CONTAINS (DOCS, 'TITLE WITHIN HEAD') > 0;

ID
----------
1

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271283/viewspace-1022448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章