From 373bbf4bdb52e838cb99ec7ec46ecac6c06a2fdc Mon Sep 17 00:00:00 2001 From: Loakesh Indiran <66478092+Loaki07@users.noreply.github.com> Date: Thu, 18 Sep 2025 14:49:24 +0530 Subject: [PATCH] fix: `order_by_metadata` for responses from cache (#8514) ### **PR Type** Bug fix ___ ### **Description** - Preserve `order_by_metadata` in cached responses - Clone metadata from first search result - Align cache response fields with live responses ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Search responses (live)"] -- "first().order_by_metadata.clone()" --> B["Cache response.order_by_metadata"] A -- "first().order_by" --> C["Cache response.order_by"] D["Cache stats"] -- "compute ratio" --> E["Cache response.result_cache_ratio"] ``` File Walkthrough Relevant filesBug fix mod.rsPropagate `order_by_metadata` into cache response src/service/search/cache/mod.rs Set cache_response.order_by_metadata from first result Clone metadata to avoid ownership issues Keep default when no results available +4/-0 ___ Co-authored-by: Subhra264 --- src/service/search/cache/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/service/search/cache/mod.rs b/src/service/search/cache/mod.rs index 4db880f5de..594d947255 100644 --- a/src/service/search/cache/mod.rs +++ b/src/service/search/cache/mod.rs @@ -642,6 +642,10 @@ pub fn merge_response( .first() .map(|res| res.order_by) .unwrap_or_default(); + cache_response.order_by_metadata = search_response + .first() + .map(|res| res.order_by_metadata.clone()) + .unwrap_or_default(); cache_response.result_cache_ratio = (((cache_hits_len as f64) * 100_f64) / ((result_cache_len + cache_hits_len) as f64)) as usize;
Propagate `order_by_metadata` into cache response
cache_response.order_by_metadata