Commit Graph

1099 Commits

Author SHA1 Message Date
Arnaud Gourlay
29df805470 Fix typo in RocksDB wrapper type (#5207) 2024-10-09 14:18:32 +02:00
Andrey Vasnetsov
e0d507dac7 Inference interface in REST and gRPC (#5165)
* include document & image objects into grpc API

* introduce image and object to rest api

* minor refactoring

* rename Vector -> VectorInternal

* decompose vector data structures

* add schema

* fmt

* grpc docs

* fix conversion

* fix clippy

* fix another conversion

* rename VectorInput -> VectorInputInternal

* replace grpc TryFrom with async functions

* fmt

* replace rest TryFrom with async functions

* add image and object into query rest

* separate inference related conversions

* move json-related conversions into a separate file

* move vector-related transformations into a separate file

* move more vector related-conversions into dedicated module
2024-10-09 10:15:46 +02:00
dependabot[bot]
e0b5968677 build(deps): bump sysinfo from 0.31.4 to 0.32.0 (#5197)
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.31.4 to 0.32.0.
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.31.4...v0.32.0)

---
updated-dependencies:
- dependency-name: sysinfo
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 09:31:32 +02:00
dependabot[bot]
42eecc3ac4 build(deps): bump procfs from 0.16.0 to 0.17.0 (#5193)
Bumps [procfs](https://github.com/eminence/procfs) from 0.16.0 to 0.17.0.
- [Release notes](https://github.com/eminence/procfs/releases)
- [Commits](https://github.com/eminence/procfs/compare/v0.16.0...v0.17.0)

---
updated-dependencies:
- dependency-name: procfs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 09:30:07 +02:00
Ivan Pleshkov
080352cc56 mmap geo index api (#5163)
* define mmap geo index

fix compilation

deleted flags

load new mmap

geo index tests

fix tests

fix build after rebase

add files list

* refactor get_stored_sub_regions output type

* review remanings

* mmap geo index api

* fix after rebase
2024-10-07 14:35:17 +02:00
Ivan Pleshkov
e00bd70f9c Mmap geo index (#4841)
* define mmap geo index

fix compilation

deleted flags

load new mmap

geo index tests

fix tests

fix build after rebase

add files list

* are you happy fmt

* refactor get_stored_sub_regions output type

* repr(C) for geohash

* Replace manual flattening with flat map iterator

* review remanings

* remove panics

* add files for snapshot

* rename Dynamic into InMemory

* are you happy fmt

* review renames

* Use copied rather than cloned

* minor review refactoring + comments

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: generall <andrey@vasnetsov.com>
2024-10-07 12:08:58 +02:00
xzfc
761069bc0a Restore SnapshotFormat::Streamable snapshots (#5179) 2024-10-04 16:39:56 +00:00
xzfc
98c4e605ae Support SnapshotFormat::Streamable, add REST endpoint (#5178) 2024-10-04 16:36:19 +00:00
xzfc
bc2104604c Introduce SnapshotFormat (#5175) 2024-10-04 16:09:30 +00:00
xzfc
7932286709 Update tar_ext::BuilderExt (#5112)
* tar_ext::BuilderExt: generalize and add drop workaround

- Generalize: instead of taking `std::fs::File`, take
  `impl Write + Seek`.
- Add a workaround for drop: `tar::Builder<W>::drop` might panic if the
  underlying writer panics when using in async context.

* Drop unnecessary write_fn usage

* tar_ext::BuilderExt: support both seekable and streaming variants

* tar_ext::BuilderExt: support both owned/borrowed variants
2024-10-04 14:10:09 +00:00
Luis Cossío
045779233a Facets: Support for bool payload (#5100)
* enable faceting with boolean index

* test and fix

* also test uuid
2024-10-01 09:17:50 -03:00
dependabot[bot]
3b2110fe6c build(deps): bump io-uring from 0.6.4 to 0.7.0 (#5158)
Bumps [io-uring](https://github.com/tokio-rs/io-uring) from 0.6.4 to 0.7.0.
- [Commits](https://github.com/tokio-rs/io-uring/commits)

---
updated-dependencies:
- dependency-name: io-uring
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 10:15:34 +02:00
dependabot[bot]
a5cebd8eef build(deps): bump rstest from 0.22.0 to 0.23.0 (#5159)
Bumps [rstest](https://github.com/la10736/rstest) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/la10736/rstest/releases)
- [Changelog](https://github.com/la10736/rstest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/la10736/rstest/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: rstest
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 10:13:09 +02:00
dependabot[bot]
52db80a292 build(deps): bump ordered-float from 4.2.2 to 4.3.0 (#5154)
Bumps [ordered-float](https://github.com/reem/rust-ordered-float) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/reem/rust-ordered-float/releases)
- [Commits](https://github.com/reem/rust-ordered-float/compare/v4.2.2...v4.3.0)

---
updated-dependencies:
- dependency-name: ordered-float
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 09:19:46 +02:00
Jojii
8980483416 [Strict mode] Merge StrictMode config types (#5137)
* merge StrictModeConfig and StrictModeConfigDiff into one type

* review remarks
2024-09-26 12:36:39 +02:00
Jojii
791d064bde [Strict mode] default config (#5037)
* add default config for strict mode

* add default values as example to config/config.yaml

* improve implementation

* update grpc docs
2024-09-25 14:22:36 +02:00
Arnaud Gourlay
d527ab9cd0 Promote atomicwrites to workspace (#5135) 2024-09-24 09:44:12 +02:00
dependabot[bot]
6b73ac1791 build(deps): bump charabia from 0.9.0 to 0.9.1 (#5125)
Bumps [charabia](https://github.com/meilisearch/charabia) from 0.9.0 to 0.9.1.
- [Release notes](https://github.com/meilisearch/charabia/releases)
- [Commits](https://github.com/meilisearch/charabia/compare/v0.9.0...v0.9.1)

---
updated-dependencies:
- dependency-name: charabia
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 21:27:12 +02:00
dependabot[bot]
f6246b0e44 build(deps): bump atomicwrites from 0.4.3 to 0.4.4 (#5130)
Bumps [atomicwrites](https://github.com/untitaker/rust-atomicwrites) from 0.4.3 to 0.4.4.
- [Commits](https://github.com/untitaker/rust-atomicwrites/compare/0.4.3...0.4.4)

---
updated-dependencies:
- dependency-name: atomicwrites
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 21:24:50 +02:00
Arnaud Gourlay
89336e628d Fix set payload by key on non appendable segment (#5113) 2024-09-23 11:59:08 +02:00
Arnaud Gourlay
7fe546b3cd Configure properly column families when using open_db_with_existing_cf (#5105) 2024-09-19 10:36:21 +02:00
misssonder
567314e732 use point mappings in simple id tracker (#5097)
* use point mappings in simple id tracker

* fix clippy warning
2024-09-17 17:06:30 +02:00
Ivan Pleshkov
f27b6909bd Move quantization repo (#5096)
* move quantization repo

* are you happy fmt

* are you happy clippy

* remove dumping pq to image

* workspace deps

* are you happy clippy
2024-09-17 16:30:26 +02:00
Luis Cossío
025f4e3066 Expose on_disk text index (#5074)
* map index: fix reachable code marked as unreachable

* plumber work to get mmap text index to interfaces

* test: add fixture for mmap text index, always create mmap segment

* various fixes

- ensure dir is created for mmap
- implement is_on_disk() for text index
- invert deleted condition for filter in mmap inverted index

* update grpc docs and openapi

* implement return of files

* review nit

* fix after rebase

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-09-16 21:27:30 +02:00
Dominik Kellner
60d4ddd623 Clean temporary segments if optimization is cancelled (#5090)
This uses `TempDir` and comes with its caveats, e.g. the temporary segment
directory will not be deleted if the process exits. This should not be a
problem in practice, as all temporary segments get deleted when the shard is
loaded (see PR #2319).

Fixes #2978.
2024-09-16 20:47:31 +02:00
Arnaud Gourlay
a9e6849ec2 Optimize reading quantized vectors (#5091) 2024-09-16 18:44:18 +02:00
Andrey Vasnetsov
7aa53c3575 take deletes into account in mmap keyword index (#5089) 2024-09-16 16:20:06 +02:00
Tim Visée
4d7d908013 Improve immutable map index performance: sort point IDs, binary search and deleted flags (#5072)
* Improve immutable map index, sort values, binary search, deleted flags

* Add struct for value to points range and count
2024-09-16 15:29:03 +02:00
Arnaud Gourlay
ea6376feb1 Rename payload storage operations for consistency (#5087) 2024-09-16 12:42:11 +02:00
Ivan Pleshkov
54150f7358 remove unused WrongPayloadKey (#5086) 2024-09-16 10:54:11 +02:00
Andrey Vasnetsov
0585b70ba6 disable sparse tar arcive creation for backward compatibility (#5081) 2024-09-14 23:33:00 +02:00
Andrey Vasnetsov
e8d5cfc63c Allow explicit populate of mmap (#4923)
* expose mmap populate

* expose mmap populate in open_read_mmap

* FOR TEST, REVERSE IT: make InRamChunkedMmap default

* enable populate advise on unix

* fix clippy

* unix -> linux

* Update lib/collection/src/config.rs

* clippy fixes

* resolve conflicts

* fmt

* Runtime check for PopulateRead

---------

Co-authored-by: xzfc <xzfcpw@gmail.com>
2024-09-14 20:53:07 +02:00
Tim Visée
2339273c41 Tiny improvements in map index (#5077)
* Shrink to fit immutable map index after construction

* Simplify mutable map index loading a bit

* Preallocate value to points container because we know the exact size
2024-09-13 22:45:58 +02:00
xzfc
078402f459 Unpack snapshots with sync (#5075)
* refactor: Simplify open_snapshot_archive_with_validation

* feat: tar::Archive::set_sync(true)
2024-09-13 22:00:59 +02:00
Luis Cossío
7d2380a285 Refactor FullTextIndex as enum (#5067)
* refactor inverted index into trait

* create immutable and mutable versions of text index

* migrate to full text index enum

* fix clippy

* review remarks
2024-09-13 16:40:20 -03:00
xzfc
a6400138f8 Direct snapshot creation (#5061) 2024-09-12 19:39:15 +00:00
Ivan Pleshkov
af3f78c0cb Packed geohash (#4964)
* packed geohash

* refactor

* are you happy codespell

* review remarks

* better iterator

* iterator with only one field

* encode db key as smolstr

* Update geohash_starts_with

---------

Co-authored-by: xzfc <xzfcpw@gmail.com>
2024-09-10 22:56:17 +02:00
xzfc
4ee7d87206 Switch to sparse tar implementation (#4943) 2024-09-10 14:07:47 +00:00
Andrey Vasnetsov
b342cbca6e initial structures for reading mmap text index (#5029)
* initial structures for reading mmap text index

* creation of text index mmap

* WIP create mmap inverted index

* use same file writing technique as in MmapHashmap

* Save points_to_tokens_count in two files

* clippy

* fill slice with iterator

* review fixes

* fix after review

* implement loading of MmapInvertedIndex

* WIP: prepare for converting ChunkReader into trait

* fmt

* WIP: prepare ChunkReader to be a trai

* WIP: replace ChunkReaderImpl with trait

* implement chunk reader for mmap view

* rollback ChunkReader trait and remove CompressedMmapPostingListView

* move ImmutableInvertedIndex and MutableInvertedIndex into separate files

* impl ops for MmapInvertedIndex

* make mmap hashmap value param generic (#5042)

* make mmap hashmap value param generic

* test + fixes

* Update lib/common/common/src/mmap_hashmap.rs

Co-authored-by: Tim Visée <tim+github@visee.me>

* Update lib/common/common/src/mmap_hashmap.rs

Co-authored-by: Tim Visée <tim+github@visee.me>

* fixups

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
Co-authored-by: xzfc <xzfcpw@gmail.com>

* test and fix immutable to mmap conversion

* fix case 4 and refactor MmapBitSlice::create

* more tests

* fmt

---------

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
Co-authored-by: Tim Visée <tim+github@visee.me>
Co-authored-by: xzfc <xzfcpw@gmail.com>
2024-09-10 12:02:05 +02:00
dependabot[bot]
25fd8cc0cb build(deps): bump smol_str from 0.2.2 to 0.3.1 (#5048)
Bumps [smol_str](https://github.com/rust-analyzer/smol_str) from 0.2.2 to 0.3.1.
- [Changelog](https://github.com/rust-analyzer/smol_str/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-analyzer/smol_str/compare/v0.2.2...v0.3.1)

---
updated-dependencies:
- dependency-name: smol_str
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-10 07:45:43 +02:00
Andrey Vasnetsov
7447fff238 debug asserts for malformed hashmmap (#5030)
* debug asserts for malformed hashmmap

* Apply suggestions from code review

* Reformat using cargo fmt

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
Co-authored-by: timvisee <tim@visee.me>
2024-09-09 10:46:06 +02:00
Luis Cossío
278153a242 Immutable text index without optional posting lists (#5040)
* discard unused token ids to slim down immutable text index

* clippy

* review: use custom types

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-09-07 19:07:55 +02:00
Andrey Vasnetsov
1712da623b Better json path parsing errors (#5035)
* report malformed json path inside error

* fmt
2024-09-06 14:53:44 +02:00
Arnaud Gourlay
b2d22c9792 Remove unecessary clippy allow deadcode (#5033) 2024-09-06 12:04:49 +02:00
Andrey Vasnetsov
90812ed683 prefer explicit function definitions instead of macros (#5022) 2024-09-04 19:16:04 +02:00
Luis Cossío
00e6ceadd4 do not include values with count 0 (#4987) 2024-08-30 08:58:28 -04:00
Andrey Vasnetsov
0a7226589a Refactor compressed posting list (#4948)
* move CompressedPostingList into a separate file

* decouple posting list from visitor using the reader abstraction

* refactor comressed_posting

* separate iterator into a new file + include diagram

* fmt

* decouple CompressedPostingList from PostingList

* decouple compression

* delete unused iter

* review: use correct names in diagrma

* review: fix comments

* review: code fixes

* fmt

* add tests

* hide compression logic
2024-08-30 13:59:33 +02:00
Luis Cossío
25c8ed050c Refactor condition converter, use uuid index there too (#4977)
* refactor condition converter, use uuid index here too

* re-disable index for values_count

* clippy
2024-08-29 11:16:43 +02:00
Jojii
e9bad464ff [Strict-Mode] Basic implementation (#4887)
* add CollectionRequestVerification

* add to api

* rebase

* improve implementation

* implement strict mode for SearchRequest+Batch

* improve code + fix Clippy

* improve error handling

* restructure StrictModeVerification trait

* generate docs

* check `enabled` option

* review remarks

* rename StrictModeConfigDiff in grpc

* use missing payload detection from issue api

* performance improvement

* decouple extractor from issues (#4945)

* some review remarks

* don't default to empty functions in StrictModeVerification trait

* update openapi

* filter_limit => query_limit

* replace discovery_max_context_size and recommend_max_examples with max_input_examples

* review remarks

* review fix: include possible index types into error message

* review remarks

---------

Co-authored-by: Luis Cossío <luis.cossio@qdrant.com>
Co-authored-by: generall <andrey@vasnetsov.com>
2024-08-29 10:49:23 +02:00
Luis Cossío
07be0a1aed Facets: add consistency param to openapi (#4969)
* add consistency param to openapi

* interpret uuid map index as facet index too
2024-08-28 09:18:02 -04:00