feat: add persistent CPU search engine and CLI with lifecycle tests
Core CI / core (ubuntu-latest) (push) Successful in 1m0s
Core CI / core (macos-latest) (push) Canceled after 0s
Core CI / core (windows-latest) (push) Canceled after 0s
Core CI / core (ubuntu-latest) (push) Successful in 1m0s
Core CI / core (macos-latest) (push) Canceled after 0s
Core CI / core (windows-latest) (push) Canceled after 0s
This commit is contained in:
1 parent
aae803771c
commit
f77112db97
19 files changed
+1688
No files matched your search
@@ -0,0 +1,28 @@
|
||||
# Searchi CLI
|
||||
|
||||
The CLI is a thin adapter over `searchi-core`; it performs no network requests or
|
||||
GPU setup. Index only folders you explicitly choose.
|
||||
|
||||
```powershell
|
||||
cargo run -p searchi-cli -- index --db ./searchi.db --root ./documents
|
||||
cargo run -p searchi-cli -- search --db ./searchi.db "termination clause" --limit 10
|
||||
cargo run -p searchi-cli -- search --db ./searchi.db "invoice" --json
|
||||
cargo run -p searchi-cli -- stats --db ./searchi.db --json
|
||||
```
|
||||
|
||||
The same arguments work on Linux and macOS. After building, invoke the `searchi`
|
||||
binary directly instead of `cargo run -p searchi-cli --`.
|
||||
|
||||
`index` creates the database if needed; its parent directory must already exist.
|
||||
`search` and `stats` require an existing database so a mistyped path does not
|
||||
silently create an empty index. Failures exit with a nonzero status and include
|
||||
the affected folder or database path. Result limits must be between 1 and 1000.
|
||||
|
||||
`search --json` emits an array of engine results, including the path, filename,
|
||||
snippet, ranking score, and match kind. An empty search emits `[]`. `stats --json`
|
||||
emits an object with `files` and `content_files`. JSON is the scripting interface;
|
||||
the human-readable output may change as preview support develops.
|
||||
|
||||
The foundation CLI searches filenames and extracted text. Semantic inference,
|
||||
document formats beyond the core extractor, and desktop integration remain
|
||||
tracked in the project roadmap; this interface does not fabricate embeddings.
|
||||
Reference in new issue
Block a user