5.4 SEM_CONTAINSと補助演算子
標準のSQL文でSEM_CONTAINS演算子を使用して、リレーショナル表に格納されているドキュメントまたはドキュメント参照を検索できます。
この演算子の構文は次のとおりです。
SEM_CONTAINS( column VARCHAR2 / CLOB, sparql VARCHAR2, policy VARCHAR2, aliases SEM_ALIASES, index_status NUMBER, ancoper NUMBER ) RETURN NUMBER;
column
およびsparql
属性は必須です。その他の属性はオプションです(それぞれNULL値を指定できます)。
column
属性は、セマンティクに索引付けされるドキュメントまたはドキュメントへの参照を格納する、リレーショナル表内のVARCHAR2またはCLOB列を示します。タイプMDSYS.SEMCONTEXTの索引は、SEM_CONTAINS演算子が使用するこの列で定義される必要があります。
sparql
属性はドキュメント検索条件を定義する文字列リテラルであり、SPARQL形式で表現されます。
オプションのpolicy
属性はエクストラクタ・ポリシーの名前を指定します(通常は、デフォルトのポリシーをオーバーライドするためです)。セマンティク・ドキュメント索引では、索引作成時に1つ以上のエクストラクタ・ポリシーを指定可能で、これらのポリシーの1つがデフォルトとなり、SEM_CONTAINSへのコールでpolicy
属性がnullの場合に使用されます。
オプションのaliases
属性は、問合せパターンの修飾名の拡張に使用される1つ以上の名前空間(デフォルトの名前空間を含む)を示します。そのデータ型は、TABLE OF SEM_ALIAS
という定義を持つSEM_ALIASESです。各SEM_ALIAS要素により、名前空間IDと名前空間値が識別されます。SEM_ALIASデータ型は、(namespace_id VARCHAR2(30), namespace_val VARCHAR2(4000))
という定義を持ちます。
オプションのindex_status
属性は、1つ以上の推論グラフを含む依存ポリシーがSEM_CONTAINSの起動に使用されている時のみ関係します。index_status
値は、推論グラフの必要最小限の有効性ステータスを識別します。可能な値は、0
(VALID(デフォルト))、1
(INCOMPLETE)および2
(INVALID)です。
オプションのancoper
属性は、問合せでこの演算子とともにSEM_CONTAINS_SELECT補助演算子を使用する際に、使用されるバインディングとして数値を指定します。ancoper
属性に指定した数値は、SEM_CONTAINS_SELECT補助演算子のoperbind
属性に指定した数値と同じである必要があります。
SEM_CONTAINS演算子は、指定した検索条件に一致するドキュメント・インスタンスごとに1を戻し、他のすべての場合は0を戻します。
SEM_CONTAINS演算子の詳細とその例は、「「SPARQL問合せパターンを使用したドキュメントの検索」」を参照してください。
5.4.1 SEM_CONTAINS_SELECT補助演算子
SEM_CONTAINS_SELECT補助演算子を使用すると、いくつかの検索条件と一致する各ドキュメントの追加情報を戻すことができます。この補助演算子は、単一の数値属性(operbind
)を持ち、この属性はバインディングに同じ値を使用することで、SEM_CONTAINS_SELECT補助演算子のインスタンスをSEM_CONTAINS演算子と関連付けます。この補助演算子は、一致ドキュメントからの追加情報を含むCLOB型のオブジェクトを、SPARQL Query Results XML形式で書式設定された状態で戻します。
SEM_CONTAINS_SELECT補助演算子の構文は次のとおりです。
SEM_CONTAINS_SELECT( operbind NUMBER ) RETURN CLOB;
SEM_CONTAINS_SELECT補助演算子の詳細とその例は、「ドキュメント内サブグラフの照合でのSPARQL変数に対するバインディング(SEM_CONTAINS_SELECT補助演算子)」を参照してください。
親トピック: SEM_CONTAINSと補助演算子
5.4.2 SEM_CONTAINS_COUNT補助演算子
SEM_CONTAINS演算子の起動にSEM_CONTAINS_COUNT補助演算子を使用できます。一致したドキュメントごとに、SEM_CONTAINSの起動で指定されたSPARQLグラフ・パターンの一致サブグラフの数が戻されます。
SEM_CONTAINS_COUNT補助演算子の構文は次のとおりです。
SEM_CONTAINS_COUNT( operbind NUMBER ) RETURN NUMBER;
次の抜粋例は、SEM_CONTAINS_COUNT補助演算子を使用して、一致したドキュメントごとに一致サブグラフの数を戻す方法を示しています。
SELECT docId, SEM_CONTAINS_COUNT(1) as matching_subgraph_count FROM Newsfeed WHERE SEM_CONTAINS (article, '{ ?org rdf:type class:Organization . ?org pred:hasCategory cat:BusinessFinance }', .., 1)= 1;
親トピック: SEM_CONTAINSと補助演算子