nidx-binding 6.9.3.post624__tar.gz → 6.9.3.post630__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nidx-binding might be problematic. Click here for more details.
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/PKG-INFO +1 -1
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/pyproject.toml +1 -1
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/hnsw/ram_hnsw.rs +23 -2
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/hnsw/search.rs +25 -23
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/segment.rs +1 -1
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/pyproject.toml +1 -1
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/scheduler/merge_task.rs +8 -8
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/settings.rs +5 -5
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.config/nextest.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/Cargo.lock +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/README.md +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/migrations/20241007163501_initial.sql +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/migrations/20241211120039_merge_job_priority.sql +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/migrations/20241211121159_basic_indexes.sql +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/migrations/20241212151105_check_segment_records.sql +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/migrations/20250110145554_in_flight_messages.sql +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_binding/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_binding/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/fuzzy_query.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/query_io.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/query_parser/stop_words.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/query_parser/tokenizer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/query_parser.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/reader.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/request_types.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/schema.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/search_query.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/search_response.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/set_query.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/README.md +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/ar.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/az.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/bn.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/ca.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/ch.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/da.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/de.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/el.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/en.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/es.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/eu.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/extract.py +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/fi.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/fr.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/he.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/hu.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/id.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/it.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/kk.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/ne.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/nl.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/no.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/pt.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/ro.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/ru.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/sl.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/sv.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/tg.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/tr.json +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/tests/reader.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/build.py +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/build.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/nidx.proto +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/nodereader.proto +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/noderesources.proto +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/nodewriter.proto +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_protos/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/graph_collector.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/graph_query_parser.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/io_maps.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/reader.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/schema.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/top_unique_n.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/tests/test_graph_search.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/tests/test_writer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_tantivy/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_tantivy/src/index_reader.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_tantivy/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_tantivy/src/utils.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_tests/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_tests/src/graph.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_tests/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/prefilter.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/query_io.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/reader.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/request_types.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/schema.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/src/search_query.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/tests/test_deletions.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/tests/test_flow.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/tests/test_search.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_text/tests/test_streaming.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_types/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_types/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_types/src/prefilter.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_types/src/query_language.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/Cargo.toml +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/config.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v1/node.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v1/store.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v1/trie.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v1.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v2/quant_vector_store.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store/v2.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_store.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/data_types.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/formula.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/hnsw/build.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/hnsw/disk_hnsw.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/hnsw/params.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/hnsw.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/indexer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/inverted_index/map.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/inverted_index.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/multivector.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/query_io.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/request_types.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/searcher.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/segment/tests.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/utils.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/vector_types/mod.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/src/vector_types/rabitq.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/tests/test_basic_search.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/tests/test_hidden.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_vector/tests/test_maxsim.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/api/grpc.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/api/shards.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/api.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/control.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/errors.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/grpc_server.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/import_export.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/indexer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/lib.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/main.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metadata/deletion.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metadata/index.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metadata/index_request.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metadata/merge_job.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metadata/segment.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metadata/shard.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metadata.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/metrics.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/scheduler/audit_task.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/scheduler/log_merge.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/scheduler/metrics_task.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/scheduler/purge_tasks.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/scheduler/vector_merge.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/scheduler.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/grpc.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/index_cache.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/query_language.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/query_planner.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/shard_search.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/shard_selector.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/shard_suggest.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/streams.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher/sync.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/searcher.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/segment_store.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/telemetry/duration_layer.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/telemetry/log_format.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/telemetry/middleware.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/telemetry.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/tool.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/utilization_tracker.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/src/worker.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/common/services.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_date_range_search.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_search_filtering.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_search_relations.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_search_sorting.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_searcher_cluster.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_security_search.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_shards.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_shards_api.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_suggest.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_synced_searcher.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_vector_normalization.rs +0 -0
- {nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/tests/test_vectorsets.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nidx_binding
|
|
3
|
-
Version: 6.9.3.
|
|
3
|
+
Version: 6.9.3.post630
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -10,7 +10,7 @@ build-backend = "pdm.backend"
|
|
|
10
10
|
|
|
11
11
|
[project]
|
|
12
12
|
name = "nidx_protos"
|
|
13
|
-
version = "6.9.3.
|
|
13
|
+
version = "6.9.3.post630"
|
|
14
14
|
license = "AGPL-3.0-or-later"
|
|
15
15
|
description = "Protobuf definitions for nucliadb/nidx"
|
|
16
16
|
authors = [{ name = "Nuclia", email = "nucliadb@nuclia.com" }]
|
|
@@ -113,10 +113,31 @@ impl RAMHnsw {
|
|
|
113
113
|
/// A bug in a previous version of this program could cause a node in layer N
|
|
114
114
|
/// to link to a node in layer N-1. This breaks navigation accross layer N.
|
|
115
115
|
/// This function will delete any such link from the graph.
|
|
116
|
-
|
|
116
|
+
/// Also delete empty layers and entrypoints pointing to unexisting layers
|
|
117
|
+
pub fn fix_broken_graph(&mut self) {
|
|
118
|
+
// Fix links to a node not in this lauer
|
|
117
119
|
for l in &self.layers[1..] {
|
|
118
120
|
l.fix_broken_links();
|
|
119
121
|
}
|
|
122
|
+
|
|
123
|
+
// Delete empty layers
|
|
124
|
+
while let Some(layer) = self.layers.last() {
|
|
125
|
+
if layer.out.is_empty() {
|
|
126
|
+
self.layers.pop();
|
|
127
|
+
} else {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// If entrypoint point to non-existing layer, point it to the top-most layer
|
|
133
|
+
if self.entry_point.layer >= self.layers.len() {
|
|
134
|
+
self.entry_point.layer = self.layers.len() - 1;
|
|
135
|
+
let last_layer = self.layers.last().unwrap();
|
|
136
|
+
if !last_layer.contains(&self.entry_point.node) {
|
|
137
|
+
// If the current entrypoint node is not in the last layer, point to another node that is here
|
|
138
|
+
self.entry_point.node = *self.layers.last().unwrap().out.keys().next().unwrap();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
120
141
|
}
|
|
121
142
|
}
|
|
122
143
|
|
|
@@ -172,7 +193,7 @@ mod tests {
|
|
|
172
193
|
let mut graph = RAMHnsw::new();
|
|
173
194
|
graph.layers.push(layer0);
|
|
174
195
|
graph.layers.push(layer1);
|
|
175
|
-
graph.
|
|
196
|
+
graph.fix_broken_graph();
|
|
176
197
|
assert!(graph.layers[1].out[&VectorAddr(0)].read().unwrap().is_empty());
|
|
177
198
|
}
|
|
178
199
|
}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
use bit_set::BitSet;
|
|
22
22
|
use rustc_hash::FxHashSet;
|
|
23
23
|
use std::cmp::{Ordering, Reverse};
|
|
24
|
-
use std::collections::{BinaryHeap, HashMap
|
|
24
|
+
use std::collections::{BinaryHeap, HashMap};
|
|
25
25
|
use std::time::Instant;
|
|
26
26
|
use tracing::trace;
|
|
27
27
|
|
|
@@ -190,33 +190,29 @@ impl<'a, DR: DataRetriever> HnswSearcher<'a, DR> {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
+
/// Breadth-first search to find the closest nodes to the entry-points that fulfill the filtering conditions
|
|
193
194
|
fn closest_up_nodes<L: SearchableLayer>(
|
|
194
195
|
&'a self,
|
|
195
|
-
entry_points: Vec<
|
|
196
|
+
entry_points: Vec<Cnx>,
|
|
196
197
|
query: &SearchVector,
|
|
197
198
|
layer: L,
|
|
198
199
|
number_of_results: usize,
|
|
199
200
|
mut filter: NodeFilter<'a>,
|
|
200
201
|
) -> Vec<(VectorAddr, f32)> {
|
|
201
|
-
// We just need to perform BFS, the replacement is the closest node to the actual
|
|
202
|
-
// best solution. This algorithm takes a lazy approach to computing the similarity of
|
|
203
|
-
// candidates.
|
|
204
|
-
|
|
205
202
|
const MAX_VECTORS_TO_PRELOAD: u32 = 20_000;
|
|
206
203
|
let mut results = Vec::new();
|
|
207
|
-
let inner_entry_points_iter = entry_points.iter().map(|VectorAddr(inner)| *inner as usize);
|
|
204
|
+
let inner_entry_points_iter = entry_points.iter().map(|Cnx(VectorAddr(inner), _)| *inner as usize);
|
|
208
205
|
let mut visited_nodes: BitSet = BitSet::from_iter(inner_entry_points_iter);
|
|
209
|
-
let mut candidates =
|
|
206
|
+
let mut candidates = entry_points;
|
|
207
|
+
candidates.sort_unstable();
|
|
210
208
|
|
|
211
209
|
let mut preloaded = 0;
|
|
212
210
|
|
|
213
211
|
loop {
|
|
214
|
-
let Some(candidate) = candidates.
|
|
212
|
+
let Some(Cnx(candidate, candidate_similarity)) = candidates.pop() else {
|
|
215
213
|
break;
|
|
216
214
|
};
|
|
217
215
|
|
|
218
|
-
let candidate_similarity = self.retriever.similarity(candidate, query);
|
|
219
|
-
|
|
220
216
|
if candidate_similarity < self.retriever.min_score() {
|
|
221
217
|
break;
|
|
222
218
|
}
|
|
@@ -226,22 +222,28 @@ impl<'a, DR: DataRetriever> HnswSearcher<'a, DR> {
|
|
|
226
222
|
}
|
|
227
223
|
|
|
228
224
|
if results.len() == number_of_results {
|
|
229
|
-
|
|
225
|
+
break;
|
|
230
226
|
}
|
|
231
227
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
if !visited_nodes.contains(new_candidate.0 as usize) {
|
|
236
|
-
visited_nodes.insert(new_candidate.0 as usize);
|
|
237
|
-
candidates.push_back(new_candidate);
|
|
238
|
-
|
|
239
|
-
if self.preload_nodes && preloaded < MAX_VECTORS_TO_PRELOAD {
|
|
228
|
+
if self.preload_nodes && preloaded < MAX_VECTORS_TO_PRELOAD {
|
|
229
|
+
for (new_candidate, _) in layer.get_out_edges(candidate) {
|
|
230
|
+
if !visited_nodes.contains(new_candidate.0 as usize) {
|
|
240
231
|
self.retriever.will_need(new_candidate);
|
|
241
232
|
preloaded += 1;
|
|
242
233
|
}
|
|
243
234
|
}
|
|
244
|
-
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
for (new_candidate, _) in layer.get_out_edges(candidate) {
|
|
238
|
+
if visited_nodes.insert(new_candidate.0 as usize) {
|
|
239
|
+
let new_similarity = self.retriever.similarity(new_candidate, query);
|
|
240
|
+
|
|
241
|
+
if new_similarity > self.retriever.min_score() {
|
|
242
|
+
candidates.push(Cnx(new_candidate, new_similarity));
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
candidates.sort_unstable();
|
|
245
247
|
}
|
|
246
248
|
|
|
247
249
|
results
|
|
@@ -364,13 +366,13 @@ impl<'a, DR: DataRetriever> HnswSearcher<'a, DR> {
|
|
|
364
366
|
let t = Instant::now();
|
|
365
367
|
let reranked = rabitq::rerank_top(neighbours.collect(), k_neighbours, self.retriever, query)
|
|
366
368
|
.into_iter()
|
|
367
|
-
.map(|Reverse(
|
|
369
|
+
.map(|Reverse(c)| c)
|
|
368
370
|
.collect();
|
|
369
371
|
let time = t.elapsed();
|
|
370
372
|
trace!(?time, "HNSW search: reranking");
|
|
371
373
|
reranked
|
|
372
374
|
} else {
|
|
373
|
-
neighbours.map(|(addr,
|
|
375
|
+
neighbours.map(|(addr, score)| Cnx(addr, score.score)).collect()
|
|
374
376
|
};
|
|
375
377
|
|
|
376
378
|
// Find k nodes that match the filter in the last layer
|
|
@@ -158,7 +158,7 @@ fn merge_indexes<DS: DataStore + 'static>(
|
|
|
158
158
|
// If there are no deletions, we can reuse the first segment
|
|
159
159
|
// HNSW since its indexes will match the the ones in data_store
|
|
160
160
|
index = DiskHnsw::deserialize(&operants[0].index);
|
|
161
|
-
index.
|
|
161
|
+
index.fix_broken_graph();
|
|
162
162
|
start_vector_index = operants[0].data_store.stored_vector_count();
|
|
163
163
|
}
|
|
164
164
|
let merged_vectors_count = data_store.stored_vector_count();
|
|
@@ -13,7 +13,7 @@ classifiers = [
|
|
|
13
13
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
14
14
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
15
15
|
]
|
|
16
|
-
version = "6.9.3.
|
|
16
|
+
version = "6.9.3.post630"
|
|
17
17
|
|
|
18
18
|
[project.urls]
|
|
19
19
|
Homepage = "https://nuclia.com"
|
|
@@ -30,12 +30,12 @@ use nidx_types::Seq;
|
|
|
30
30
|
use super::{log_merge, vector_merge};
|
|
31
31
|
|
|
32
32
|
pub struct MergeScheduler {
|
|
33
|
-
|
|
33
|
+
merge_settings: MergeSettings,
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
impl MergeScheduler {
|
|
37
|
-
pub fn from_settings(
|
|
38
|
-
Self {
|
|
37
|
+
pub fn from_settings(merge_settings: MergeSettings) -> Self {
|
|
38
|
+
Self { merge_settings }
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/// Enqueue merge jobs for segments older than `last_indexed_seq` that aren't
|
|
@@ -100,7 +100,7 @@ impl MergeScheduler {
|
|
|
100
100
|
HAVING COUNT(segments) > 1 OR index_deletion_window.id IS NOT NULL
|
|
101
101
|
"#,
|
|
102
102
|
i64::from(last_indexed_seq),
|
|
103
|
-
self.
|
|
103
|
+
self.merge_settings.max_deletions as i64
|
|
104
104
|
)
|
|
105
105
|
.fetch_all(&meta.pool)
|
|
106
106
|
.await?;
|
|
@@ -109,9 +109,9 @@ impl MergeScheduler {
|
|
|
109
109
|
let segment_info: HashMap<_, _> = index.segments.iter().map(|(id, rec, f)| (*id, (*rec, *f))).collect();
|
|
110
110
|
let merges = match index.kind {
|
|
111
111
|
IndexKind::Text | IndexKind::Paragraph | IndexKind::Relation => {
|
|
112
|
-
log_merge::plan_merges(&self.
|
|
112
|
+
log_merge::plan_merges(&self.merge_settings.log, index.segments)
|
|
113
113
|
}
|
|
114
|
-
IndexKind::Vector => vector_merge::plan_merges(&self.
|
|
114
|
+
IndexKind::Vector => vector_merge::plan_merges(&self.merge_settings.vector, index.segments),
|
|
115
115
|
};
|
|
116
116
|
|
|
117
117
|
for m in merges {
|
|
@@ -166,7 +166,7 @@ mod tests {
|
|
|
166
166
|
|
|
167
167
|
fn merge_scheduler() -> MergeScheduler {
|
|
168
168
|
MergeScheduler::from_settings(MergeSettings {
|
|
169
|
-
|
|
169
|
+
log: LogMergeSettings {
|
|
170
170
|
min_number_of_segments: 3,
|
|
171
171
|
..Default::default()
|
|
172
172
|
},
|
|
@@ -326,7 +326,7 @@ mod tests {
|
|
|
326
326
|
#[sqlx::test]
|
|
327
327
|
async fn test_schedule_merges_with_segment_tags(pool: sqlx::PgPool) -> anyhow::Result<()> {
|
|
328
328
|
let merge_scheduler = MergeScheduler::from_settings(MergeSettings {
|
|
329
|
-
|
|
329
|
+
log: LogMergeSettings {
|
|
330
330
|
min_number_of_segments: 2,
|
|
331
331
|
..Default::default()
|
|
332
332
|
},
|
|
@@ -193,16 +193,16 @@ pub struct StorageSettings {
|
|
|
193
193
|
#[serde(default)]
|
|
194
194
|
pub struct MergeSettings {
|
|
195
195
|
pub max_deletions: usize,
|
|
196
|
-
pub
|
|
197
|
-
pub
|
|
196
|
+
pub log: LogMergeSettings,
|
|
197
|
+
pub vector: VectorMergeSettings,
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
impl Default for MergeSettings {
|
|
201
201
|
fn default() -> Self {
|
|
202
202
|
Self {
|
|
203
203
|
max_deletions: 500,
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
log: Default::default(),
|
|
205
|
+
vector: Default::default(),
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
}
|
|
@@ -434,7 +434,7 @@ mod tests {
|
|
|
434
434
|
assert_eq!(settings.indexer.unwrap().nats_server, Some("localhost".to_string()));
|
|
435
435
|
assert_eq!(settings.merge.max_deletions, 1234);
|
|
436
436
|
assert_eq!(
|
|
437
|
-
settings.merge.
|
|
437
|
+
settings.merge.log.min_number_of_segments,
|
|
438
438
|
LogMergeSettings::default().min_number_of_segments
|
|
439
439
|
);
|
|
440
440
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/migrations/20241007163501_initial.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/query_parser.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/request_types.rs
RENAMED
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/resource_indexer.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/search_query.rs
RENAMED
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/src/search_response.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/stop_words/extract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_paragraph/tests/common/mod.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.3.post624 → nidx_binding-6.9.3.post630}/nidx_relation/src/graph_collector.rs
RENAMED
|
File without changes
|