11.2 Oracle Textを使用したHTMLのセクション検索
HTMLには、セクション検索に使用できるタグ付きテキスト形式の内部構造があります。たとえば、<H1>タグに対してheadingsというセクションを定義し、ドキュメント・セット全体でこれらのタグ内でのみ語句を検索します。
問合せには、WITHIN演算子を使用します。Oracle Textにより、headingsセクション内に問合せ語句を含むすべてのドキュメントを検出します。たとえば、headingsセクション内にワードoracleを含むすべてのドキュメントを検索する場合は、次の問合せを入力します。
'oracle within headings'
この項の内容は次のとおりです。
11.2.1 HTMLのセクションの作成
次のコードは、HTML_SECTION_GROUP.型のセクション・グループhtmgroupを定義します次に、<H1>タグで識別されるheadingというゾーン・セクションをhtmgroup内に作成します。
begin
ctx_ddl.create_section_group('htmgroup', 'HTML_SECTION_GROUP');
ctx_ddl.add_zone_section('htmgroup', 'heading', 'H1');
end;
ドキュメントを次のように索引付けできます。
create index myindex on docs(htmlfile) indextype is ctxsys.context
parameters('filter ctxsys.null_filter section group htmgroup');
htmgroupセクション・グループで索引付けした後、次の問合せを発行してheadingセクション内を問い合せることができます。
'Oracle WITHIN heading'
11.2.2 HTMLのMetaタグの検索
HTMLドキュメントの場合は、<META>タグのNAME/CONTENTのペアにセクションを作成できます。このとき、検索をCONTENT内のテキストに制限できます。
次のMETAタグを持つHTMLドキュメントがあるとします。
<META NAME="author" CONTENT="ken">
METAタグに対してすべてのCONTENT属性を索引付けるゾーン・セクションを作成します。この場合、METAタグのNAME値はauthorです。
begin
ctx_ddl.create_section_group('htmgroup', 'HTML_SECTION_GROUP');
ctx_ddl.add_zone_section('htmgroup', 'author', 'meta@author');
end
htmgroupセクション・グループで索引付けした後、次のようにドキュメントを問い合せることができます。
'ken WITHIN author'