特殊セクションは、タグで認識されるのではありません。現在サポートされている特殊セクションは、文と段落のみです。特殊セクションを使用すると、文または段落内のワードの組合せを検索できます。
文および段落の境界は、レクサーが判断します。たとえば、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;