私は次の問題に直面しています。クエリごとに一致する値がterm1
であり、term2
はすべてのクエリに対して静的であるのに対し、インデックスには特定のレコードグループに対していくつかのソートされたクエリがあります。今弾性検索グループの組み合わせクエリの並べ替え
{
"query": {
"bool": {
"must": {
"terms": {
"term1": [ "val1", "val2" ]
}
},
"must_not": {
"terms": {
"term2": [ "val3", "val4" ]
}
}
}
},
"sort": [
{ "sort_term": "desc" }
],
"from": 0,
"size": 10
}
私は別に、すべてのこれらのクエリを実行し、コードで自分の結果を組み合わせるとシャッフルよ、あなたはおそらく言うことができるように何かが理想的ではありません。グループベースの並べ替えを維持しながら、ElasticSearchでこれらのクエリを組み合わせる方法があるのだろうかと思っていました。
並べ替えの値が一様でなく、異なるグループの結果が結果セットに埋め込まれないようにするため、個々のクエリの並べ替え順序を維持する理由があります。
私が考えることができる唯一の解決策は、すべてのレコードを何らかの形で再処理し、特定のグループ内のすべてのレコードのソート値に基づいて相対ソート値を計算することですが、これらの値は非常に規則的に変化し、多くのレコード、それはおそらく過剰なものになるでしょう。
アイデアをいただければ幸いです!
私は複数のソート用語を使用できますが、この場合はすべてのクエリで同じソート用語が使用されることがわかります。私がしたいのは、すべてのブール項を個別にソートし、結果をミックスすることです。 – OrfeasZ
その後、私はあなたの質問を理解できませんでした。最終結果をどのように分類するべきかは不明です。 – MartinSchulze