- Adjust accuracy and speed trade-offs per query
- Fine-tune search quality without rebuilding indexes
- Optimize for different use cases (fast approximate vs high-accuracy search)
- Control rescoring behavior for better accuracy
Samples
Increase accuracy for important queries
Fast approximate search
Disable rescoring for maximum speed
Session-wide configuration
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
diskann.query_search_list_size | int | 100 | Number of additional candidates considered during graph search. Higher values improve accuracy but slow queries |
diskann.query_rescore | int | 50 | Number of elements rescored with full precision. Set to 0 to disable rescoring |
diskann.query_search_list_size
Controls the size of the candidate list during graph traversal:- Lower values (20-50): Faster queries, reduced accuracy, fewer candidates explored
- Default (100): Balanced performance and accuracy
- Higher values (100-200): Better accuracy, slower queries, more thorough search
diskann.query_rescore
The number of top candidates to rescore using full-precision vectors:- 0: Disable rescoring, use quantized results directly (fastest)
- Default (50): Rescore top 50 candidates for improved accuracy
- Higher values (50-200): More thorough rescoring, better accuracy, slower queries
Setting parameters
Session-level (persistent)
Transaction-local (temporary)
LOCAL keyword ensures parameters reset after the transaction ends.
Tuning recommendations
High-accuracy applications
For applications where accuracy is critical (e.g., medical diagnosis, legal document search):Real-time applications
For latency-sensitive applications (e.g., chatbots, autocomplete):Batch processing
For offline batch processing where throughput matters:A/B testing different configurations
Performance considerations
- Start with default values and adjust
diskann.query_rescorefirst - Use transaction-local settings (
SET LOCAL) for experimentation - Monitor query latency with
EXPLAIN ANALYZEwhen tuning - Higher values consume more CPU but not significantly more memory