Search
Sairo indexes every object key in your S3 buckets into a SQLite FTS5 full-text search index. This lets you find any object by name in sub-second time, regardless of how many buckets or objects you have.
Opening search
Section titled “Opening search”Press / anywhere in the UI to open the search bar. You can also click the search icon in the toolbar. Start typing to see results immediately.
How it works
Section titled “How it works”The search query runs against the FTS5 virtual table in each bucket’s SQLite database. The index uses a trigram tokenizer, which supports substring matching anywhere in the key. Typing invoice will match invoices.csv, invoice-2026-01.pdf, and archive/invoices/q4.xlsx.
Prefix-scoped search
Section titled “Prefix-scoped search”When you are inside a bucket or folder, search results are automatically scoped to that location. This is useful when you know the object is somewhere within a specific prefix but do not remember the exact path.
To search across all buckets, open search from the top-level bucket list.
Result details
Section titled “Result details”Each search result displays:
| Field | Description |
|---|---|
| Filename | The object’s base name |
| Path | Full key path within the bucket |
| Size | Human-readable file size |
| Last Modified | Timestamp of the most recent modification |
Navigation
Section titled “Navigation”Click any search result to navigate directly to that object’s location in the browser. The browser will open the containing folder and highlight the matched object.
Background indexing
Section titled “Background indexing”Sairo’s crawler runs on a continuous loop (default: every 2 minutes, configurable via RECRAWL_INTERVAL). Each crawl updates the SQLite database and its FTS5 index, so newly uploaded or deleted objects appear in search results shortly after the next crawl completes.