検索メソッドの作成方法の例¶
図 Example of how a search method is created with 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, AUTHOR, FORMAT, PRICE)
WRAPPER (xml booktest)
);
この例では、 bookview_sm1
という検索メソッドを基本ビュー bookview
に追加します。この検索メソッドには 4 つのクエリ制約が含まれています。このクエリ制約では、ソースに対してクエリを実行するには、そのクエリで TITLE
(値を任意の数だけ指定) に値を指定するよう定義されています。属性 AUTHOR
(値を任意の数だけ指定) と演算子 like
に対する検索を実行することもできます。その他の属性 (FORMAT
、 PRICE
など) については、直接クエリを実行することはできません。また、検索メソッドでは、すべての属性が出力されるよう定義されています。最後に、 booktest
という XML ラッパー が検索メソッドに関連付けられています。クエリが検索メソッドにより実行されるときには、このラッパーが検索結果の抽出処理を実行します。
重要
この例のソースでは、指定した属性に対するクエリがネイティブにサポートされていませんが (前述の例では、 FORMAT
、 PRICE
などが非サポート)、Virtual DataPort はソースから取得した結果のポスト処理を行うことで、それらの属性に対するクエリの一部を実行できます。たとえば、サーバーがクエリ SELECT * FROM BOOKVIEW WHERE TITLE like 'java' AND FORMAT = 'eBook'
を受信する場合、Virtual DataPort は java
という語をタイトルに含む本をソースから抽出して応答することができ (ソースがこのクエリを許可しているため)、その後結果をフィルタして FORMAT
フィールドが eBook
であるものを残します。