機能関数
ソート式で機能関数を使用できます。ほとんどの機能関数は、精密ソート式でのみ使用できます。さまざまな構文と句を組み合わせて、複雑なソートを実行できます。
機能関数のパラメーターで参照するフィールドは、各関数の説明に基づいてインデックスフィールドまたは属性フィールドとして構成する必要があります。
normalize: 異なる値範囲のスコアを[0,1]の範囲の数値に正規化します
1.シナリオの概要
ドキュメントの関連性は、さまざまな次元から計算されます。異なる次元から計算されたスコアは、異なる値範囲になる場合があります。たとえば、Webページのクリック数は数百万回になる可能性がありますが、Webページのテキスト関連性スコアは0~1の値です。このような異なる値範囲の値を比較することはできません。正規化関数は、異なる値範囲のスコアを同じ値範囲のスコアに正規化できます。このようにして、正規化されたスコアをさらに計算に使用できます。正規化関数は、線形正規化、対数正規化、逆正接正規化の3つの正規化方法をサポートしています。選択される正規化方法は、入力パラメーターによって異なります。 value パラメーターのみが設定されている場合、正規化関数は正規化に逆正接関数を使用します。 value パラメーターと max パラメーターの両方が設定されている場合、正規化関数は正規化に対数関数を使用します。 value、max、min のすべてのパラメーターが設定されている場合、正規化関数は正規化に線形関数を使用します。
2.構文
normalize(value, max, min)
3.パラメーター
value: ドキュメント内のフィールド、またはフィールド値または戻り値を正規化したい式。フィールド値または戻り値はDOUBLE型である必要があります。
max: 正規化後の値範囲の最大値。このパラメーターは省略可能です。最大値はDOUBLE型である必要があります。
min: 正規化後の値範囲の最小値。このパラメーターは省略可能です。最小値はDOUBLE型である必要があります。
4.戻り値
戻り値はDOUBLE型です。有効な値: [0,1]。
5.シナリオ
シナリオ1: price フィールドの値を正規化したいが、price フィールドの値範囲がわからない場合。この場合、次の形式で normalize 関数を使用できます: normalize(price)
.
シナリオ2: price フィールドの値を正規化したいが、price フィールドの値範囲の最大値のみがわかっている場合。この場合、次の形式で normalize 関数を使用できます: normalize(price, 100)
.
シナリオ3: price フィールドの値を正規化したいが、最大値と最小値がそれぞれ100と1である場合。この場合、次の形式で normalize 関数を使用できます: normalize(price, 100, 1)
.
シナリオ4: distance 関数の戻り値を0~1の値に正規化したい場合。この場合、次の形式で normalize 関数を使用できます: normalize(distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query))
.
6.使用上の注意:
関数で参照されるフィールドは、属性フィールドとして設定する必要があります。
逆正接関数を正規化に使用し、フィールド値または指定された式の戻り値が0より小さい場合、normalize 関数の戻り値は0になります。
対数関数を正規化に使用する場合は、max パラメーターの値が1より大きい必要があります。
線形関数を正規化に使用する場合は、max パラメーターの値が min パラメーターの値より大きい必要があります。