From 5f8a08f392e6d94aac476cebc64013e8e8a0e16e Mon Sep 17 00:00:00 2001 From: Ashish Kolhe <35160958+oasisk@users.noreply.github.com> Date: Fri, 30 Aug 2024 17:09:26 +0530 Subject: [PATCH] fix: multi result cache duplicates issue (#4413) ## Summary by CodeRabbit - **New Features** - Enhanced response handling by including the histogram interval in search results. - **Bug Fixes** - Adjusted hit filtering logic to improve accuracy by changing the timestamp comparison criteria. --- src/service/search/cache/mod.rs | 1 + src/service/search/cache/multi.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/service/search/cache/mod.rs b/src/service/search/cache/mod.rs index ff2677bf09..9bcec31a18 100644 --- a/src/service/search/cache/mod.rs +++ b/src/service/search/cache/mod.rs @@ -346,6 +346,7 @@ fn merge_response( continue; } resp.hits.extend(res.hits.clone()); + resp.histogram_interval = res.histogram_interval; } resp.took = cache_took; resp diff --git a/src/service/search/cache/multi.rs b/src/service/search/cache/multi.rs index 6004875508..eb8d57418f 100644 --- a/src/service/search/cache/multi.rs +++ b/src/service/search/cache/multi.rs @@ -179,7 +179,7 @@ async fn recursive_process_multiple_metas( let discard_ts = get_allowed_up_to(&cached_response, &cache_req, discard_duration); cached_response.hits.retain(|hit| { let hit_ts = get_ts_value(&cache_req.ts_column, hit); - hit_ts <= hits_allowed_end_time && + hit_ts < hits_allowed_end_time && hit_ts >= hits_allowed_start_time && hit_ts < discard_ts });