Db2 Text Search の検索関数

テキスト検索索引を更新した後に、CONTAINS または SCORE SQL スカラー検索関数を使用して、または xmlcolumn-contains 関数を使用して検索できます。

テキスト検索索引での検索は、タイトル内の単一ワードのオカレンスの照会のような簡単なものから、 ブール演算子または用語のランキング調整を使用する照会のような複雑なものまで範囲があります。 検索の複雑性を洗練するために役立つ演算子に加えて、同義語ディクショナリーや言語学的サポートなどのフィーチャーによって、テキスト検索索引での検索を強化できます。

以下の検索関数を使用できます。
  • SQL 関数の CONTAINS および XML 関数の xmlcolumn-contains は、特定の語句の照会を作成します
  • SQL 関数の SCORE は、検出したテキスト文書の適合性を取得します

スカラー・テキスト検索関数の CONTAINS および SCORE は、SQL とシームレスに統合されます。 検索関数は、SQL 照会内で標準 SQL 式を使用する場合と同じ位置に使用できます。 SQL SCORE スカラー関数は、テキスト文書が指定のテキスト検索条件に一致する度合いを示す標識を戻します。 SQL 照会の SELECT 句によって、どの情報が戻されるかが決まります。

CONTAINS 関数は語句の一致を検索します。この関数は、ワイルドカード文字とともに使用することで、SQL LIKE 述部と類似した方法でサブストリングの一致を検索したり、SQL = 演算子と類似した方法でストリングの完全一致を検索したりすることができます。 ただし、CONTAINS 関数の使用と SQL LIKE 述部または = 演算子の使用との間には、大きな違いがあります。 LIKE 述部および = 演算子は文書内でパターンを検索しますが、CONTAINS は言語学的な処理を使用します。つまり、検索語のさまざまな形式を検索します。 例えば、ワイルドカード文字を使用しなくても、用語 work を検索すると、working および worked を含む文書も戻されます。 さらに、テキスト検索索引に同義語ディクショナリーを追加して、検索の範囲を拡大することができます。 例えば、laptop および ThinkPad をグループにまとめて、 それらが notebook computers の検索結果から戻されるようにすることができます。 XML 文書では、XML 検索引数構文によってタグ内および属性内のテキストを検索できます。 さらに、XQuery 検索は大/小文字を区別します。

Db2 オプティマイザーは、CONTAINS 述部との一致が予想されるテキスト文書の数、およびさまざまな代替アクセス・プランのコストを推定することに注意してください。 オプティマイザーは、コストが最小となるアクセス・プランを選択します。

関数 xmlcolumn-contains は、 Db2 Text Search エンジンによって実行されるテキスト検索に基づいて、 Db2 XML データ列から XML 文書を戻す組み込み Db2 関数です。 xmlcolumn-contains を XQuery 式で使用して、 特定の文書要素の検索に基づいて文書を取り出すことができます。 例えば、販売する玩具の製品説明および価格が XML 文書に含まれている場合、xmlcolumn-contains を XQuery 式で使用して説明および価格要素を検索し、用語 outdoors があり pool がなく、価格が $25.00 未満の文書だけを戻すことができます。

xmlcolumn-contains 関数の使用と XQuery contains 関数の使用の間には、重要な違いがあります。 XQuery contains 関数は、ストリング内のサブストリングを検索します。 それは検索語句と完全に一致するものを探します。 それに対して XQuery xmlcolumn-contains 関数は、 CONTAINS 関数に類似した機能を持ちますが、XML 列でのみ機能します。 さらに、それは検索語句を含む XML 文書を戻しますが、contains は検索用語が見つかったかどうかを示す 1、0、NULL などの値だけを戻します。