# Retrieval Module FAISS-based similarity search with modality filtering. ## Files | File | Description | |------|-------------| | `index.py` | FAISS index operations (build, search, save/load) | | `engine.py` | Retrieval engine | | `multimodal.py` | Multi-modal retrieval with same-modal and cross-modal queries | ## Index Type | Parameter | Value | |-----------|-------| | Type | IndexFlatIP | | Similarity | Inner Product (Cosine on L2-normalized vectors) | | Build Time | O(N) | | Search Time | O(N) | ## Usage ```python from src.retrieval.multimodal import MultiModalRetrieval # Initialize retrieval = MultiModalRetrieval(embed_dim=768) # Build index from modality embeddings retrieval.build_index({ "optical": optical_embeddings, "sar": sar_embeddings, "multispectral": ms_embeddings, }) # Same-modal query result = retrieval.same_modal_query(query, modality="optical", k=5) # Cross-modal query result = retrieval.cross_modal_query( query, source_modality="optical", target_modality="sar", k=5 ) ```