Update docs
This commit is contained in:
parent
fdcf9a1a12
commit
5477446c5d
2 changed files with 29 additions and 5 deletions
28
docs/cli.md
28
docs/cli.md
|
|
@ -215,14 +215,38 @@ Shows:
|
||||||
- path to the database
|
- path to the database
|
||||||
- stored haiku.rag version (from settings)
|
- stored haiku.rag version (from settings)
|
||||||
- embeddings provider/model and vector dimension
|
- embeddings provider/model and vector dimension
|
||||||
- number of documents
|
- number of documents and chunks (with storage sizes)
|
||||||
|
- vector index status (exists/not created, indexed/unindexed chunks)
|
||||||
- table versions per table (documents, chunks)
|
- table versions per table (documents, chunks)
|
||||||
|
|
||||||
At the end, a separate “Versions” section lists runtime package versions:
|
At the end, a separate "Versions" section lists runtime package versions:
|
||||||
- haiku.rag
|
- haiku.rag
|
||||||
- lancedb
|
- lancedb
|
||||||
- docling
|
- docling
|
||||||
|
|
||||||
|
### Create Vector Index
|
||||||
|
|
||||||
|
Create a vector index on the chunks table for fast approximate nearest neighbor search:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
haiku-rag create-index [--db /path/to/your.lancedb]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Requirements:**
|
||||||
|
- Minimum 256 chunks required for index creation (LanceDB training data requirement)
|
||||||
|
- Creates an IVF_PQ index using the configured `search.vector_index_metric` (cosine/l2/dot)
|
||||||
|
|
||||||
|
**When to use:**
|
||||||
|
- After ingesting documents (indexes are not created automatically)
|
||||||
|
- After adding significant new data to rebuild the index
|
||||||
|
- Use `haiku-rag info` to check index status and see how many chunks are indexed/unindexed
|
||||||
|
|
||||||
|
**Search behavior:**
|
||||||
|
- Without index: Brute-force kNN search (exact nearest neighbors, slower for large datasets)
|
||||||
|
- With index: Fast ANN (approximate nearest neighbors) using IVF_PQ
|
||||||
|
- With stale index: LanceDB combines indexed results (fast ANN) + brute-force kNN on unindexed rows
|
||||||
|
- Performance degrades as more unindexed data accumulates
|
||||||
|
|
||||||
### Vacuum (Optimize and Cleanup)
|
### Vacuum (Optimize and Cleanup)
|
||||||
|
|
||||||
Reduce disk usage by optimizing and pruning old table versions across all tables:
|
Reduce disk usage by optimizing and pruning old table versions across all tables:
|
||||||
|
|
|
||||||
|
|
@ -751,7 +751,7 @@ haiku-rag create-index
|
||||||
|
|
||||||
This command:
|
This command:
|
||||||
- Checks if you have enough data (minimum 256 chunks)
|
- Checks if you have enough data (minimum 256 chunks)
|
||||||
- Creates an IVF_PQ index for fast approximate nearest neighbor search
|
- Creates an IVF_PQ index for fast approximate nearest neighbor (ANN) search
|
||||||
- Uses LanceDB's automatic parameter calculation based on your dataset size and vector dimensions
|
- Uses LanceDB's automatic parameter calculation based on your dataset size and vector dimensions
|
||||||
|
|
||||||
**Re-indexing:**
|
**Re-indexing:**
|
||||||
|
|
@ -762,9 +762,9 @@ Indexes are not automatically updated when you add new documents. After adding a
|
||||||
haiku-rag create-index # Rebuilds the index with all data
|
haiku-rag create-index # Rebuilds the index with all data
|
||||||
```
|
```
|
||||||
|
|
||||||
Searches still work with stale indexes - LanceDB uses the index for old data and brute-force for new unindexed rows, then combines the results. However, performance degrades as more unindexed data accumulates.
|
Searches still work with stale indexes - LanceDB uses the index for old data (fast ANN) and brute-force kNN for new unindexed rows, then combines the results. However, performance degrades as more unindexed data accumulates.
|
||||||
|
|
||||||
For datasets with fewer than 256 chunks, searches use brute-force scans which are slower but still functional.
|
For datasets with fewer than 256 chunks, searches use brute-force kNN scans (exact nearest neighbors, 100% recall) which work well for small datasets but don't scale beyond a few hundred thousand vectors.
|
||||||
|
|
||||||
### Document Processing
|
### Document Processing
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue