Expand description
Implicit Feedback Collection
Automatically captures user interaction signals to improve search quality. Unlike explicit feedback (“this was helpful”), implicit feedback is derived from natural usage patterns.
§Signal Types
| Signal | What It Means | Learning Impact |
|---|---|---|
| Query | User searched for something | Records query patterns |
| View | User looked at a result | Weak positive signal |
| Select | User chose this result | Strong positive signal |
| Ignore | Result shown but not viewed | Weak negative signal |
| Dwell | Time spent on result | Strength of interest |
| FollowUp | Query after viewing result | Indicates gap or relation |
| CoAccess | Items accessed together | Hidden relationship |
§Example
ⓘ
use converge_knowledge::learning::FeedbackCollector;
let collector = FeedbackCollector::new();
// Start a session
let session = collector.start_session();
// Track a search
let query_id = collector.record_query(&session, "rust async patterns", &results);
// User views result #2
collector.record_view(&session, query_id, results[1].entry_id);
// User selects (clicks, copies, etc.) result #2
collector.record_select(&session, query_id, results[1].entry_id);
// Later, process accumulated feedback
let signals = collector.drain_signals();
learning_engine.apply_implicit_feedback(signals);Structs§
- Feedback
Collector - Collector for implicit feedback signals.
- Feedback
Config - Configuration for the feedback collector.
- Feedback
Processor - Process raw signals into learning updates.
- Feedback
Signal - A captured feedback signal with context.
- Processed
Feedback - Processed feedback ready for the learning engine.
- QueryId
- Query identifier for tracking result interactions.
- Session
Id - Session identifier for grouping related interactions.
Enums§
- Signal
Type - Type of implicit signal captured.