ResultFusionService
in package
Result Fusion Service.
Combines, ranks, and filters search results from multiple sources. Applies configurable ranking weights and quality scoring.
Table of Contents
Methods
- applyAccessFilter() : Collection
- Apply access control filter.
- calculateEngagementScore() : float
- Calculate engagement score based on user interaction.
- calculateQualityScore() : float
- Calculate quality score based on record completeness.
- calculateRelevanceScore() : float
- Calculate relevance score based on query match.
- deduplicate() : Collection
- Deduplicate results (remove near-duplicates).
- fuse() : Collection
- Fuse results from multiple search strategies.
- updateRankingConfig() : bool
- Update ranking configuration.
Methods
applyAccessFilter()
Apply access control filter.
public
applyAccessFilter(Collection $results[, object|null $user = null ]) : Collection
Parameters
- $results : Collection
-
Results to filter
- $user : object|null = null
-
Current user (null for anonymous)
Return values
Collection —Filtered results user can access
calculateEngagementScore()
Calculate engagement score based on user interaction.
public
calculateEngagementScore(object $item) : float
Parameters
- $item : object
Return values
floatcalculateQualityScore()
Calculate quality score based on record completeness.
public
calculateQualityScore(object $item) : float
Parameters
- $item : object
Return values
floatcalculateRelevanceScore()
Calculate relevance score based on query match.
public
calculateRelevanceScore(object $item, array<string|int, mixed> $parsedQuery) : float
Parameters
- $item : object
- $parsedQuery : array<string|int, mixed>
Return values
floatdeduplicate()
Deduplicate results (remove near-duplicates).
public
deduplicate(Collection $results[, float $threshold = 0.9 ]) : Collection
Parameters
- $results : Collection
- $threshold : float = 0.9
Return values
Collectionfuse()
Fuse results from multiple search strategies.
public
fuse(array<string|int, mixed> $resultSets, array<string|int, mixed> $parsedQuery[, int|null $institutionId = null ]) : Collection
Parameters
- $resultSets : array<string|int, mixed>
-
Array of result collections
- $parsedQuery : array<string|int, mixed>
-
Parsed query from QueryUnderstandingService
- $institutionId : int|null = null
-
Institution ID for ranking config
Return values
Collection —Fused and ranked results
updateRankingConfig()
Update ranking configuration.
public
updateRankingConfig(array<string|int, mixed> $data[, int|null $institutionId = null ]) : bool
Parameters
- $data : array<string|int, mixed>
- $institutionId : int|null = null