問合せテンプレートを使用して、デフォルト以外の代替スコアリング・アルゴリズムを指定することにより、CONTAINSをスコアリングする方法をカスタマイズしたり、SDATAをスコアリング式の一部として使用できます。このようにして、事前定義済スコアリング・コンポーネントのみでなくSDATAコンポーネントを使用してスコアリング式を数学的に定義できます。
代替のユーザー定義スコアリングを使用して、次の操作を実行できます。
次を使用して、問合せのスコアリング方法を定義する演算式を定義して、語句のスコアリング式を指定します。
事前定義済スコアリング・アルゴリズム: DISCRETE、OCCURRENCE、RELEVANCEおよびCOMPLETION
算術操作: 加算、減算、乗算、除算
算術関数: ABS(n)、n ; LOG(n)の絶対値の検索、10を底とするnの対数値の検索
数値リテラル。
語句レベルでスコアリング式を指定します。
スコアの計算時に考慮に入れない語句を指定します。
OR演算子およびAND演算子の子要素によるスコアをどのようにマージするかを指定します。
数値を格納するSDATAまたはDATETIME値を使用して、ドキュメントの最終スコアに影響を与えます。
次の例では、代替スコアリング・アルゴリズムを指定します。
select id from docs where CONTAINS (text, '<query> <textquery grammar="CONTEXT" lang="english"> mustang </textquery> <score datatype="float" algorithm="DEFAULT"/> </query>')>0
次の問合せテンプレート例には、SDATA値が、最終スコアの一部として含まれています。
select id from docs where CONTAINS (text, '<query> <textquery grammar="CONTEXT" lang="english"> mustang </textquery> <score datatype="float" algorithm="DEFAULT" normalization_expr ="doc_score+SDATA(price)"/> </query>')>0"