特徴量関数
特徴量関数はソート式で使用できます。これらの関数のほとんどは高度ソート式でのみサポートされます。さまざまな構文や文を組み合わせることで、強力なソート機能を実装できます。
特徴量関数のパラメーターとして使用するドキュメントフィールドは、関数のドキュメントに記載されているとおり、インデックスまたはプロパティとして作成する必要があります。
gauss_decay:ガウス関数を使用して、値と指定された原点との距離に基づく減衰を計算する
1. 使用詳細:
gauss_decay(origin, value, scale, decay, offset)
2. パラメーター:
-
origin:減衰関数の原点。値は double 型である必要があります。
-
value:減衰を計算するために使用する値。値は double 型であり、ドキュメントフィールドまたは他の式から取得できます。
-
scale:減衰のレート。値は double 型である必要があります。
-
decay:原点からの距離が scale に等しい場合の減衰の程度。値は double 型です。このパラメーターはオプションです。デフォルト値は 0.000001 です。
-
offset:原点からの距離が offset より大きい場合にのみ減衰が計算されます。値は double 型です。このパラメーターはオプションです。デフォルト値は 0 です。
3. 戻り値:
[0, 1] の範囲の double 値を返します。
4. シナリオ:
シナリオ 1:
ユーザーに最も近いホテルを検索し、近い順に並べ替えます。100 m 以内のホテルは同等に近いとみなされます。このシナリオでは、`longitude_in_doc` および `latitude_in_doc` はホテルの経度および緯度、`longitude_in_query` および `latitude_in_query` はユーザーの経度および緯度です。
gauss_decay(0, distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query), 5, 0.000001, 0.1)
シナリオ 2:
価格が約 300 米ドルのモバイル端末を検索します。価格が 200 未満または 400 を超える場合、ドキュメントスコアは 0 になります。ドキュメント内の端末価格は `price`、`kvpairs=price_key:2000` とします。数式は次のとおりです。
gauss_decay(kvpairs_value(price_key, FLOAT), price, 500)
5. 注意事項:
-
関数のパラメーターはプロパティとして作成する必要があります。
-
`scale` が 0 以下の場合、関数は 0 を返します。
-
`decay` が 1 以上の場合、関数は 1 を返します。
-
`decay` が 0 以下の場合、その値は 0.000001 に設定されます。
-
`offset` が 0 未満の場合、その値は 0 に設定されます。