Sortの仕様について

sort":[{"score":{"order":"desc"}},{"age":{"order":"asc"}},{"average":{"order":"desc"}}]
のように複数のフィールドに対してソートを掛けた際の優先順位などはあるのでしょうか?
例えばscoreの降順に並べるのが優先され、検索結果としては
1.score:90 age:17 average:85
2.score:89 age:15 average:90
3.score:82 age:13 average:83
のようになるのでしょうか?

https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-request-body.html#request-body-search-sort

上記ページのsortの箇所を読みましたが、特に確認できませんでした。

Elasticsearchのバージョンは7.4.0です。

指定した順番にソートが優先されるという認識です。
ですので、提示されている例ですと以下のようになるかと思います。

第1ソート: score降順
第2ソート: age 昇順
第3ソート: average 降順

SQLのorder byと同じようなものだと思っていただければよいかもしれません。

1 Like

回答ありがとうございます。
このあたりのオプションがどういう効き方をするのかはSQLチックな感じなんですね。

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.