Skip to main content
Sometimes the answer is spread across separate corpora - a product catalog, its reviews, and an FAQ - that you keep as distinct indexes. Multi-index search queries several loaded indexes in a single call and returns the global top-K, with each result tagged by its source index. See query_multi_index in the reference.

Usage

Load the indexes (in bulk with load_indexes), then query them together with query_multi_index. Every result document carries an index_name so you know where it came from.

Behavior notes

  • All indexes must be loaded locally (via load_index or load_indexes) and share the same embedding model.
  • top_k is global, not per-index - it caps the merged result set.
  • QueryOptions.alpha works as in single-index query (default 0.8): 1.0 is embedding-only, 0.0 is keyword-only, and values in between fuse both signals with Reciprocal Rank Fusion. Keyword scoring runs each index’s own BM25 and merges hits by score before fusion, so keyword and hybrid ordering across indexes is approximate. filter and embedding work the same as in single-index query.

Bulk lifecycle

load_indexes(names) returns a LoadIndexesResult with loaded and failed. It is best-effort: a typo in one name does not roll back the others, and reloading an already-loaded index is idempotent. unload_indexes(names) releases them when you are done.

Hybrid search

How alpha blends semantic and keyword scoring.

MossClient reference

query_multi_index, load_indexes, unload_indexes.