問合せテンプレートを使用して、デフォルト以外の代替スコアリング・アルゴリズムを指定することにより、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"