検索メソッドの作成方法の例

Example of how a search method is created with ALTER TABLE では、検索メソッドをビューに追加する方法について例を示しています。

ALTER TABLE を使用した検索メソッドの作成方法の例
CREATE TABLE bookview
...
...
...
    ADD SEARCHMETHOD bookview_sm1 (
        CONSTRAINTS (
            ADD TITLE (any) OBL ONE
            ADD AUTHOR (like) OPT ONE
            ADD FORMAT NOS ZERO ()
            ADD PRICE NOS ZERO ()
        )
        OUTPUTLIST (TITLE, AUTOR, FORMAT, PRICE)
    WRAPPER (itp booktest)
);

この例では、 bookview_sm1 という検索メソッドを基本ビュー bookview に追加します。この検索メソッドには 4 つのクエリ制約が含まれています。このクエリ制約では、ソースに対してクエリを実行するには、そのクエリで TITLE (値を任意の数だけ指定) に値を指定するよう定義されています。属性 AUTHOR (値を任意の数だけ指定) と演算子 like に対する検索を実行することもできます。その他の属性 (FORMATPRICE など) については、直接クエリを実行することはできません。また、検索メソッドでは、すべての属性が出力されるよう定義されています。最後に、 booktest という WWW 型 ラッパー (ITPilot で作成されたラッパー) が検索メソッドに関連付けられています。クエリが検索メソッドにより実行されるときには、このラッパーが検索結果の抽出処理を実行します。

重要

この例のソースでは、指定した属性に対するクエリがネイティブにサポートされていませんが (前述の例では、 FORMATPRICE などが非サポート)、Virtual DataPort はソースから取得した結果のポスト処理を行うことで、それらの属性に対するクエリの一部を実行できます。たとえば、サーバーがクエリ SELECT * FROM BOOKVIEW WHERE TITLE like 'java' AND FORMAT = 'eBook' を受信する場合、Virtual DataPort は java という語をタイトルに含む本をソースから抽出して応答することができ (ソースがこのクエリを許可しているため)、その後結果をフィルターして FORMAT フィールドが eBook であるものを残します。