私は、4つの値(赤、青、黄、緑)のいずれかを持つことができるフィールド(色など)を持っています。私は、赤が1のスコアを持ち、すべての赤が上になるように並べ替え、青のスコアが2、黄が3というようにソートします。Elasticsearch explicit sorting score
elasticsearchで並べ替えるためにこれらの手動スコアリングを割り当てるにはどうすればよいですか?
私は、4つの値(赤、青、黄、緑)のいずれかを持つことができるフィールド(色など)を持っています。私は、赤が1のスコアを持ち、すべての赤が上になるように並べ替え、青のスコアが2、黄が3というようにソートします。Elasticsearch explicit sorting score
elasticsearchで並べ替えるためにこれらの手動スコアリングを割り当てるにはどうすればよいですか?
function_score機能を使用すると、カスタムスコアリング機能を使用できます。 match_allクエリを必要なものと置き換えることができます。
{
"query": {
"function_score": {
"boost_mode": "replace",
"query": {
"match_all": {}
},
"functions": [
{
"filter": {
"term": {
"color": "red"
}
},
"weight": 1
},
{
"filter": {
"term": {
"color": "blue"
}
},
"weight": 3
},
{
"filter": {
"term": {
"color": "yellow"
}
},
"weight": 2
}
]
}
},
"size": 20,
"from": 0
}
これまでに試したマッピング、クエリ、例外を表示してください。 – user3775217