私はプレミアム(スポンサー提供)のオファーをリストの一番上に置く必要があります。私はまた、新しい提供を少し増強するために減衰関数を使用する必要があります。Elasticsearchのプレミアムオファーを上げる方法
私はこのアイデアを思い付いた:
{
"sort": [
{
"_score": "desc"
}
],
"from": 0,
"size": 15,
"query": {
"function_score": {
"query": {
},
"functions": [
{
"exp": {
"created_at": {
"scale": "14d",
"decay": 0.1
}
}
},
{
"script_score": {
"script": {
"lang": "painless",
"inline": "doc['is_sponsored'].value ? 100 : 1"
}
}
}
]
}
}
}
私は崩壊「EXP」機能を使用するので、時々新しい申し出があるため、関数の結果を乗算のプレミアム古いものの上に表示されています。
プレミアム古い提供:
スコアである0.0061177 * 100 = 0.6177
新しい正規のオファー:
スコアは150 * 1 = 150
あなたが見ることができるように、新しい定期的な提供しています古いプレミアムのものより高いスコアを持つことができます。
プレミアムオファーが常にリストの一番上にあることを確認する方法はありますか?
あなたのマッピング/スキーマを見たいと提案する前に? – user3775217