ゾーン・セクションは、ドキュメント内の開始タグと終了タグで区切られたテキストの本体です。開始タグと終了タグの位置は索引内に記録されているため、タグで囲まれたワードはそのセクション内に存在するとみなされます。ゾーン・セクションのインスタンスすべてに開始タグと終了タグが付いている必要があります。
たとえば、<TITLE>
と</TITLE>
の2つのタグに挟まれたテキストは、ゾーン・セクションとして次のように定義できます。
<TITLE>Tale of Two Cities</TITLE> It was the best of times...
ゾーン・セクションは、ドキュメント内でネスト、オーバーラップおよび繰返しができます。
ゾーン・セクションの問合せ時に、全セクション内の語句を検索するには、WITHIN
演算子を使用します。Oracle Textにより、定義済のセクション内に問合せ語句を含むドキュメントが戻ります。
ゾーン・セクションは、HTMLおよびXMLドキュメントのセクションの定義に最適です。ゾーン・セクションを定義するには、CTX_DDL
.ADD_ZONE_SECTION
を使用します。
たとえば、次のようにbooktitle
というセクションを定義したとします。
begin ctx_ddl.create_section_group('htmgroup', 'HTML_SECTION_GROUP'); ctx_ddl.add_zone_section('htmgroup', 'booktitle', 'TITLE'); end;
索引付けした後で、セクションbooktitle
内の語句Citiesを含むすべてのドキュメントを次のように検索できます。
'Cities WITHIN booktitle'
(dog and cat) WITHIN booktitleのような複数の問合せ語句の場合は、Oracle Textにより、booktitle
セクションの同じインスタンス内にcatとdogを含むドキュメントが検出されます。
繰返しゾーン・セクション
ゾーン・セクションは繰返しが可能です。出現はそれぞれ別セクションとして処理されます。たとえば、<H1>がheading
セクションを示す場合は、次のように同じドキュメント内で繰り返すことができます。
<H1> The Brown Fox </H1> <H1> The Gray Wolf </H1>
これらのゾーン・セクションがHeading
という名前の場合、問合せBrown WITHIN Headingはこのドキュメントを戻します。ただし、(Brown and Gray) WITHIN Headingという問合せはできません。
ゾーン・セクションのオーバーラップ
ゾーン・セクションは互いにオーバーラップできます。たとえば、<B>
と<I>
が2つの異なるゾーン・セクションを示す場合、これらはドキュメント内で次のようにオーバーラップできます。
plain <B> bold <I> bold and italic </B> only italic </I> plain
ネストされたゾーン・セクション
ゾーン・セクションは(それ自体も含む)、次のようにネストできます。
<TD> <TABLE><TD>nested cell</TD></TABLE></TD>
WITHIN
演算子を使用して、セクション内のセクションのテキストを検索するための問合せを記述できます。たとえば、BOOK1、BOOK2およびAUTHORのゾーン・セクションが、ドキュメントdoc1およびdoc2で次のように出現するとします。
doc1:
<book1> <author>Scott Tiger</author> This is a cool book to read.</book1>
doc2:
<book2> <author>Scott Tiger</author> This is a great book to read.</book2>
次のようにネストされた問合せを実行します。
'(Scott within author) within book1'
この問合せはdoc1のみを戻します。