フィールド・セクションは、ゾーン・セクションと同じように、開始タグと終了タグで区切られたテキストの範囲です。フィールド・セクションはゾーン・セクションより効率的で、リージョンがドキュメントの残りの部分とは別に索引付けされる点でゾーン・セクションと異なります。作成できるフィールド・セクションの数は無制限です。
フィールド・セクションは異なる方法で索引付けされるため、大量のドキュメントが索引付けされている場合は、ゾーン・セクションに比べて問合せパフォーマンスが向上します。
フィールド・セクションは、ドキュメント内のセクションに1回のみ出現するニュース・ヘッダーのフィールドなどに最適です。また、フィールド・セクションは、ドキュメントの残りの部分で参照できます。
ゾーン・セクションとは異なり、フィールド・セクションには次の制限事項があります。
フィールド・セクションはオーバーラップできません。
フィールド・セクションは繰返しができません。
フィールド・セクションはネストできません。
この項では、次の項目について説明します。
デフォルトでは、フィールド・セクションはドキュメントの残りの部分とは別にサブドキュメントとして索引付けされます。このため、フィールド・セクションは前後のテキストから参照不能であり、WITHIN
句でそのセクション名を明示的に指定することによってのみ問い合せることができます。
フィールド・セクション内のテキストをドキュメント全体の一部として索引付けする場合は、フィールド・セクションを参照可能にできます。参照可能なフィールド・セクション内のテキストは、WITHIN
演算子を使用するかどうかにかかわらず問い合せることができます。
次の例では、参照不能なフィールド・セクションと参照可能なフィールド・セクションの相違点を示します。
次のコードは、BASIC_SECTION_GROUP
型のセクション・グループbasicgroup
を定義します。次に、<A>
タグに対してAuthor
というフィールド・セクションをbasicgroup
に作成します。また、参照可能フラグをFALSE
に設定して、参照不能なセクションを作成します。
begin ctx_ddl.create_section_group('basicgroup', 'BASIC_SECTION_GROUP'); ctx_ddl.add_field_section('basicgroup', 'Author', 'A', FALSE); end;
Author
フィールド・セクションは参照不能であるため、Author
セクション内のテキストを検索するには、次のようにWITHIN
演算子を使用する必要があります。
'(Martin Luther King) WITHIN Author'
WITHIN
演算子を使用せずにMartin Luther Kingを問い合せても、フィールド・セクション内のこの語句のインスタンスは戻りません。WITHIN
を指定せずにフィールド・セクション内のテキストを問い合せる場合は、セクション作成時に次のように参照可能フラグをTRUE
に設定する必要があります。
begin ctx_ddl.add_field_section('basicgroup', 'Author', 'A', TRUE); end;
フィールド・セクションはネストできません。たとえば、フィールド・セクションを<TITLE>
で始まるように定義し、別のフィールド・セクションを<FOO>
で始まるように定義した場合、この2つのセクションは次のようにネストすることはできません。
<TITLE> dog <FOO> cat </FOO> </TITLE>
ネストされたセクションを使用するには、これらをゾーン・セクションとして定義します。