Version: 1.0.0 (Draft)
- Source: A searchable collection of data
- Index: An acceleration structure built from source data
- Query: A structured search request
- SearchOutput: The canonical response object
- Engine: The search implementation
- Connector: A module that interfaces with a specific source type
- Segment: An immutable unit of index storage
- Generation: A version number incremented on each index update
filesystem-metadata- File and directory metadatarecords-json- JSON record collectionsrecords-ndjson- NDJSON record collectionsrecords-csv- CSV record collections (optional)
Each source must have: unique ID, name, type, connector, location, schema, capabilities.
Sources declare supported operations: exact lookup, prefix, range, text search, streaming, etc.
version: Query schema versiontext: Free text searchfields: Fields to searchfilters: Array of filter conditionssources: Source selectionsort: Sort specificationlimit: Maximum resultscursor: Pagination cursoroptions: Query options
eq, neq, gt, gte, lt, lte, range, prefix, suffix, contains, starts_with_path, exists, missing, in, not_in, tag, not_tag
and, or, not
See OUTPUT.md for SearchOutput specification.
Structured errors with: code, message, retryable, source_id, details.
- Deterministic
- Rebuildable from source
- Versioned
- Checksummed (SHA-256)
- Segment-based
- Crash-safe
- Atomic commits
- Exact index (hash map)
- Prefix index (trie/radix tree)
- Range index (sorted array)
- Bitmap/tag index
- Inverted text index
- Trigram index
- Path/hierarchy index
- Hot: Engine running, index loaded. Target: p50 <1ms, p99 <2ms
- Warm: Engine running, some disk reads. Target: usually <10ms
- Cold: Fresh process start. No specific targets.
Implementations must:
- Return deterministic results for same query and index state
- Use structured SearchOutput
- Support error codes
- Report timing
- Support pagination cursors
- Verify checksums on index open