- Added search_by_keyword method for keyword-based search functionality
- Supports FTS (Full-Text Search) when available, falls back to LIKE queries
- Includes helper methods _check_fts_available, _search_with_fts, _search_with_like
- Fixed schema to separate vector and metadata tables for sqlite-vec compatibility
- Returns properly formatted results compatible with SemanticSearch.hybrid_search
- Handles multiple keywords with AND/OR logic and relevance scoring
- Completed Task 2: Context-aware and timeline search
- ContextAwareSearch class with topic classification and result prioritization
- TimelineSearch class with date-range filtering and temporal proximity
- Enhanced MemoryManager with unified search interface
- Supports semantic, keyword, context-aware, timeline, and hybrid search
- Added search result dataclasses with relevance scoring
- Integrated all search strategies into MemoryManager.search() method
All search modes operational:
- Semantic search with sentence-transformers embeddings
- Context-aware search with topic-based prioritization
- Timeline search with date filtering and recency weighting
- Hybrid search combining multiple strategies
Search results include conversation context and relevance scoring as required.