* Add common::typelevel module
* Use common::typelevel for score_bytes
* Revert "Split FilteredScorer into FilteredScorer and FilteredQuantizedScorer"
This reverts commit ff3a93ee95.
* FilteredQuantizedScorer
* Extract `struct Filters` from `FilteredScorer` and `FilteredQuantizedScorer`
* Revert "QuantizedVectors::query_scorer_bytes"
This reverts commit 9dee824afd.
* Partial revert "Add QueryScorerBytes::score_bytes"
This reverts commit d80af4f698, but keeps
the QueryScorerBytes trait while removing implementations.
* Partial revert "Add EncodedVectorsBytes::score_point_vs_bytes"
This partially reverts commit c741e42f9a.
- trait `EncodedVectorsBytes` and its implementations: reverted/removed
- calls to `EncodedVectorsBytes::score_point_vs_bytes`: replaced with
calls to `EncodedVectors::score_bytes`
* Remove unused method FilteredScorer::new_from_raw
* make bm25 parameters compatible with default fastembed params
* bm25 params in openapi schema
* fmt
* improve bm25 config deserialization
* more explicit docstring for disabling english
* Make numeric index storage non optional
* Make map index storage non optional
* Make full text index storage non optional
* Remove unnecessary option
* Make geo index storage non optional
* Make bool index storage non optional
* Remove unnecessary result
* Make null index storage non optional
* Remove load functions from numeric index
* Remove load functions from map index
* Remove unnecessary result and option
* Remove load functions from full text index
* Remove load functions from geo index
* Remove unnecessary result and option
* Remove load functions from bool index
* Remove load functions from null index
* Don't invoke load when loading payload indices, remove load from trait
* Open and load simple bool index in single stage
* Open and load mutable bool index in single stage
* Open and load mutable null index in single stage
* Refactor index selector, don't return early
* Open and load mutable full text index in single stage
* Open and load immutable full text index in single stage
* Open and load mmap full text index in single stage
* In struct payload index open, use option to specify loaded, set rebuild
* Open and load mutable numeric index in single stage
* Open and load immutable numeric index in single stage
* Open and load mmap numeric index in single stage
* new_null_index always returns null index
Missing refactor for MutableNullIndex. Since we have the
`create_if_missing` flag, we no longer have `open_if_exists` function,
ergo, signature for `new_null_index` should not include an `Option`.
---------
Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
* put all flags impls in a single module
* use in appendable_dense_vector_storage
* use in appendable_mmap_multi_dense_storage
* use in mmap_sparse_vector_storage
* clippy
* Add comment we cannot rely on length of deleted vectors bitvec
---------
Co-authored-by: timvisee <tim@visee.me>
* separate flags buffering and in-memory container
* new bitvec flags
* fmt
* clippy
* make BufferedDynamicFlags public to crate only
* clear cache after loading
* clippyyy
* improve comment
* Use resize with a constant to eliminate a hot closure
* Add comment on why we take subslice of bitslice
---------
Co-authored-by: timvisee <tim@visee.me>
* TestRawScorerProducer to use VectorStorageEnum
* TestRawScorerProducer:🆕 accept distance as an argument
* Drop TMetric from TestRawScorerProducer
* Remove `impl VectorStorage for TestRawScorerProducer`
* Add TestRawScorerProducer::internal_scorer
* Remove TestRawScorerProducer::get_vector
* Rename TestRawScorerProducer::{get_scorer => scorer}
* Introduce BufferedDynamicFlags
* clippy and extra changes
* fix flushing
* add mutable index impl
* use MutableNullIndex instead of MmapNullIndex
* use BufferedDynamicFlags
* remove mmap_null_index
* take updates before returning the flusher
* bump total_point_count on add and remove point
* improve test case
* Only clean up mutable null index files if index exists
* Remove mention of cached in context of length
* refactor flags into a single `Option<Storage>`
---------
Co-authored-by: timvisee <tim@visee.me>