Skip to content

Commit 99819e5

Browse files
whutchinson98aidanhb
authored andcommitted
feat(search): sort on sent_at_seconds and updated_at_seconds before score (#623)
1 parent 2b4953a commit 99819e5

File tree

2 files changed

+14
-33
lines changed

2 files changed

+14
-33
lines changed

rust/cloud-storage/opensearch_client/src/search/unified.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,8 +459,9 @@ fn build_unified_search_request(args: &UnifiedSearchArgs) -> Result<SearchReques
459459

460460
// Build sort
461461
let sort = vec![
462+
SortType::Field(FieldSort::new("sent_at_seconds", SortOrder::Desc)),
463+
SortType::Field(FieldSort::new("updated_at_seconds", SortOrder::Desc)),
462464
SortType::ScoreWithOrder(ScoreWithOrderSort::new(SortOrder::Desc)),
463-
SortType::Field(FieldSort::new("entity_id", SortOrder::Desc)),
464465
];
465466

466467
for sort in sort {

rust/cloud-storage/opensearch_client/src/search/unified/test.rs

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,14 @@ fn test_deserialization() -> anyhow::Result<()> {
398398
Ok(())
399399
}
400400

401+
fn expected_sort<'a>() -> Vec<SortType<'a>> {
402+
vec![
403+
SortType::Field(FieldSort::new("sent_at_seconds", SortOrder::Desc)),
404+
SortType::Field(FieldSort::new("updated_at_seconds", SortOrder::Desc)),
405+
SortType::ScoreWithOrder(ScoreWithOrderSort::new(SortOrder::Desc)),
406+
]
407+
}
408+
401409
#[test]
402410
fn test_build_unified_search_request_content() -> anyhow::Result<()> {
403411
let unified_search_args = UnifiedSearchArgs {
@@ -847,14 +855,7 @@ fn test_build_unified_search_request_content() -> anyhow::Result<()> {
847855
}
848856
},
849857
"size": 20,
850-
"sort": [
851-
{
852-
"_score": "desc"
853-
},
854-
{
855-
"entity_id": "desc"
856-
}
857-
]
858+
"sort": expected_sort().iter().map(|s| s.to_json()).collect::<Vec<_>>(),
858859
});
859860

860861
assert_eq!(result.to_json(), expected);
@@ -1095,14 +1096,7 @@ fn test_build_unified_search_request_name() -> anyhow::Result<()> {
10951096
}
10961097
},
10971098
"size": 20,
1098-
"sort": [
1099-
{
1100-
"_score": "desc"
1101-
},
1102-
{
1103-
"entity_id": "desc"
1104-
}
1105-
]
1099+
"sort": expected_sort().iter().map(|s| s.to_json()).collect::<Vec<_>>(),
11061100
});
11071101

11081102
assert_eq!(result.to_json(), expected);
@@ -1810,14 +1804,7 @@ fn test_build_unified_search_request_name_content() -> anyhow::Result<()> {
18101804
}
18111805
},
18121806
"size": 20,
1813-
"sort": [
1814-
{
1815-
"_score": "desc"
1816-
},
1817-
{
1818-
"entity_id": "desc"
1819-
}
1820-
]
1807+
"sort": expected_sort().iter().map(|s| s.to_json()).collect::<Vec<_>>(),
18211808
});
18221809

18231810
assert_eq!(result.to_json(), expected);
@@ -1904,14 +1891,7 @@ fn test_build_unified_search_request_single_index() -> anyhow::Result<()> {
19041891
},
19051892
"from": 20,
19061893
"size": 20,
1907-
"sort": [
1908-
{
1909-
"_score": "desc"
1910-
},
1911-
{
1912-
"entity_id": "desc"
1913-
}
1914-
],
1894+
"sort": expected_sort().iter().map(|s| s.to_json()).collect::<Vec<_>>(),
19151895
"highlight": {
19161896
"require_field_match": true,
19171897
"fields": {

0 commit comments

Comments
 (0)