特殊セクションは、タグで認識されるのではありません。現在サポートされている特殊セクションは、文と段落のみです。特殊セクションを使用すると、文または段落内のワードの組合せを検索できます。
文および段落の境界は、レクサーが判断します。たとえば、BASIC_LEXERは、文および段落のセクション境界を次のように認識します。
表8-3 BASIC_LEXERの文および段落セクション境界
| 特殊セクション | 境界 |
|---|---|
SENTENCE |
WORD/PUNCT/WHITESPACE |
WORD/PUNCT/NEWLINE |
|
PARAGRAPH |
WORD/PUNCT/NEWLINE/WHITESPACE |
WORD/PUNCT/NEWLINE/NEWLINE |
レクサーが境界を認識できない場合、SENTENCEセクションまたはPARAGRAPHセクションはいずれも索引付けされません。
特殊セクションを追加するには、CTX_DDL.ADD_SPECIAL_SECTIONプロシージャを使用します。たとえば、次のコードによって、HTMLドキュメントの文内での検索が使用可能になります。
begin
ctx_ddl.create_section_group('htmgroup', 'HTML_SECTION_GROUP');
ctx_ddl.add_special_section('htmgroup', 'SENTENCE');
end;
文検索の他にゾーン検索を使用可能にするために、ゾーン・セクションをグループに追加することもできます。次の例では、ゾーン・セクションHeadlineをセクション・グループhtmgroupに追加します。
begin
ctx_ddl.create_section_group('htmgroup', 'HTML_SECTION_GROUP');
ctx_ddl.add_special_section('htmgroup', 'SENTENCE');
ctx_ddl.add_zone_section('htmgroup', 'Headline', 'H1');
end;