diff --git a/app/services/search/fusion_service.py b/app/services/search/fusion_service.py index 5c857bf..c5a426a 100644 --- a/app/services/search/fusion_service.py +++ b/app/services/search/fusion_service.py @@ -72,6 +72,10 @@ class LegacyWeightedSum(FusionStrategy): score=existing.score + r.score * 0.5, snippet=existing.snippet, match_reason=f"{existing.match_reason}+vector", + # C-1: 분류 축 메타 전파 (재구성 시 누락 = D-1 유형 표시 None) + material_type=existing.material_type, + jurisdiction=existing.jurisdiction, + published_date=existing.published_date, ) elif r.score > 0.3: merged[r.id] = r @@ -128,6 +132,10 @@ class RRFOnly(FusionStrategy): score=rrf_score, snippet=base.snippet, match_reason="+".join(reasons), + # C-1: 분류 축 메타 전파 (재구성 시 누락 = D-1 유형 표시 None) + material_type=base.material_type, + jurisdiction=base.jurisdiction, + published_date=base.published_date, ) ) return merged[:limit] diff --git a/app/services/search/search_pipeline.py b/app/services/search/search_pipeline.py index 59b1acb..996737f 100644 --- a/app/services/search/search_pipeline.py +++ b/app/services/search/search_pipeline.py @@ -462,6 +462,10 @@ def _rrf_fuse_variants( score=rrf_score, snippet=doc.snippet, match_reason=f"{doc.match_reason}+multi_query_rrf", + # C-1: 분류 축 메타 전파 (SearchResult 재구성 지점 — fusion 2곳과 동기) + material_type=doc.material_type, + jurisdiction=doc.jurisdiction, + published_date=doc.published_date, )) return fused[:limit]