nidx-binding 6.9.7.post683__tar.gz → 6.9.7.post693__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.
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/PKG-INFO +1 -1
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -1
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/build.rs +4 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/nodereader.proto +3 -7
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/noderesources.proto +5 -3
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/nodewriter.proto +2 -3
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/pyproject.toml +1 -1
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/graph_query_parser.rs +42 -46
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/lib.rs +2 -2
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/schema.rs +0 -1
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/tests/test_graph_search.rs +29 -22
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/config.rs +3 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v1/store.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/lib.rs +1 -3
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/searcher.rs +3 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/segment/tests.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/segment.rs +41 -18
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/tests/test_basic_search.rs +3 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/tests/test_hidden.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/tests/test_maxsim.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/pyproject.toml +1 -1
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/import_export.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/indexer.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metadata/merge_job.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metadata.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/scheduler/merge_task.rs +1 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/query_planner.rs +0 -2
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/sync.rs +1 -0
- nidx_binding-6.9.7.post683/tests/test_date_range_search.rs → nidx_binding-6.9.7.post693/tests/integration/date_range_search.rs +1 -3
- nidx_binding-6.9.7.post693/tests/integration/mod.rs +32 -0
- nidx_binding-6.9.7.post683/tests/test_search_filtering.rs → nidx_binding-6.9.7.post693/tests/integration/search_filtering.rs +1 -3
- nidx_binding-6.9.7.post683/tests/test_search_relations.rs → nidx_binding-6.9.7.post693/tests/integration/search_relations.rs +14 -11
- nidx_binding-6.9.7.post683/tests/test_search_sorting.rs → nidx_binding-6.9.7.post693/tests/integration/search_sorting.rs +1 -3
- nidx_binding-6.9.7.post683/tests/test_searcher_cluster.rs → nidx_binding-6.9.7.post693/tests/integration/searcher_cluster.rs +1 -3
- nidx_binding-6.9.7.post683/tests/test_security_search.rs → nidx_binding-6.9.7.post693/tests/integration/security_search.rs +1 -3
- nidx_binding-6.9.7.post683/tests/test_shards.rs → nidx_binding-6.9.7.post693/tests/integration/shards.rs +1 -3
- nidx_binding-6.9.7.post683/tests/test_shards_api.rs → nidx_binding-6.9.7.post693/tests/integration/shards_api.rs +2 -3
- nidx_binding-6.9.7.post683/tests/test_suggest.rs → nidx_binding-6.9.7.post693/tests/integration/suggest.rs +1 -3
- nidx_binding-6.9.7.post683/tests/test_synced_searcher.rs → nidx_binding-6.9.7.post693/tests/integration/synced_searcher.rs +1 -0
- nidx_binding-6.9.7.post683/tests/test_vector_normalization.rs → nidx_binding-6.9.7.post693/tests/integration/vector_normalization.rs +2 -8
- nidx_binding-6.9.7.post683/tests/test_vectorsets.rs → nidx_binding-6.9.7.post693/tests/integration/vectorsets.rs +1 -3
- nidx_binding-6.9.7.post693/tests/test_integration.rs +27 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.config/nextest.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/.sqlx/query-fd97b359c7a7cdc573b2112efbafb9956ae71d8f875c38140cba1c04b7084b47.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/Cargo.lock +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/README.md +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/migrations/20241007163501_initial.sql +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/migrations/20241211120039_merge_job_priority.sql +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/migrations/20241211121159_basic_indexes.sql +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/migrations/20241212151105_check_segment_records.sql +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/migrations/20250110145554_in_flight_messages.sql +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_binding/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_binding/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/fuzzy_query.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/query_io.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/query_parser/stop_words.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/query_parser/tokenizer.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/query_parser.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/reader.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/request_types.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/schema.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/search_query.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/search_response.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/src/set_query.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/README.md +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/ar.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/az.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/bn.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/ca.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/ch.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/da.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/de.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/el.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/en.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/es.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/eu.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/extract.py +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/fi.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/fr.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/he.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/hu.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/id.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/it.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/kk.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/ne.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/nl.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/no.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/pt.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/ro.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/ru.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/sl.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/sv.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/tg.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/stop_words/tr.json +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_paragraph/tests/reader.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/build.py +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/nidx.proto +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_protos/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/graph_collector.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/io_maps.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/reader.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/top_unique_n.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/tests/test_writer.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_tantivy/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_tantivy/src/index_reader.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_tantivy/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_tantivy/src/utils.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_tests/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_tests/src/graph.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_tests/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/prefilter.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/query_io.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/reader.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/request_types.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/schema.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/src/search_query.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/tests/test_deletions.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/tests/test_flow.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/tests/test_search.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_text/tests/test_streaming.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_types/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_types/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_types/src/prefilter.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_types/src/query_language.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/Cargo.toml +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v1/node.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v1/trie.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v1.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v2/quant_vector_store.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store/v2.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_store.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/data_types.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/formula.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw/build.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw/disk/v1.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw/disk/v2.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw/disk.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw/params.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw/ram_hnsw.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw/search.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/hnsw.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/indexer.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/inverted_index/map.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/inverted_index.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/multivector.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/query_io.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/request_types.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/utils.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/vector_types/mod.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/src/vector_types/rabitq.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/api/grpc.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/api/shards.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/api.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/control.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/errors.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/grpc_server.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/lib.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/main.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metadata/deletion.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metadata/index.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metadata/index_request.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metadata/segment.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metadata/shard.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/metrics.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/scheduler/audit_task.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/scheduler/log_merge.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/scheduler/metrics_task.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/scheduler/purge_tasks.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/scheduler/vector_merge.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/scheduler.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/grpc.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/index_cache.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/query_language.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/shard_search.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/shard_selector.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/shard_suggest.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher/streams.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/searcher.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/segment_store.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/settings.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/telemetry/duration_layer.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/telemetry/log_format.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/telemetry/middleware.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/telemetry.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/tool.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/utilization_tracker.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/src/worker.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/tests/common/services.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nidx_binding
|
|
3
|
-
Version: 6.9.7.
|
|
3
|
+
Version: 6.9.7.post693
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -77,7 +77,6 @@ pub fn parse_quoted(schema: &ParagraphSchema, quoted: &str) -> Result<Box<dyn Qu
|
|
|
77
77
|
.map(|word| Term::from_field_text(schema.text, word))
|
|
78
78
|
.collect();
|
|
79
79
|
|
|
80
|
-
#[allow(clippy::comparison_chain)]
|
|
81
80
|
if terms.len() == 1 {
|
|
82
81
|
// phrase queries must have more than one term, so we use a term query
|
|
83
82
|
let term = terms.remove(0); // safe because terms.len() == 1
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
use std::io::Result;
|
|
22
22
|
|
|
23
23
|
fn main() -> Result<()> {
|
|
24
|
+
println!("cargo:rerun-if-changed=nidx.proto");
|
|
25
|
+
println!("cargo:rerun-if-changed=nodereader.proto");
|
|
26
|
+
println!("cargo:rerun-if-changed=noderesources.proto");
|
|
27
|
+
println!("cargo:rerun-if-changed=nodewriter.proto");
|
|
24
28
|
println!("cargo:rerun-if-changed=../../nucliadb_protos");
|
|
25
29
|
println!("cargo:rerun-if-changed=src");
|
|
26
30
|
tonic_build::configure().emit_rerun_if_changed(false).compile_protos(
|
|
@@ -151,16 +151,12 @@ message RelationPrefixSearchResponse {
|
|
|
151
151
|
|
|
152
152
|
message GraphQuery {
|
|
153
153
|
message Node {
|
|
154
|
+
reserved 4;
|
|
155
|
+
|
|
154
156
|
optional string value = 1;
|
|
155
157
|
optional utils.RelationNode.NodeType node_type = 2;
|
|
156
158
|
optional string node_subtype = 3;
|
|
157
159
|
|
|
158
|
-
enum MatchKind {
|
|
159
|
-
DEPRECATED_EXACT = 0;
|
|
160
|
-
DEPRECATED_FUZZY = 1;
|
|
161
|
-
}
|
|
162
|
-
MatchKind match_kind = 4 [deprecated = true];
|
|
163
|
-
|
|
164
160
|
enum MatchLocation {
|
|
165
161
|
// Match full value. Search "Rosa Parks" to find "Rosa Parks"
|
|
166
162
|
FULL = 0;
|
|
@@ -181,7 +177,7 @@ message GraphQuery {
|
|
|
181
177
|
uint32 distance = 2;
|
|
182
178
|
}
|
|
183
179
|
|
|
184
|
-
oneof
|
|
180
|
+
oneof match_kind {
|
|
185
181
|
ExactMatch exact = 5;
|
|
186
182
|
FuzzyMatch fuzzy = 6;
|
|
187
183
|
}
|
|
@@ -164,11 +164,13 @@ message Resource {
|
|
|
164
164
|
map<string, IndexParagraphs> paragraphs = 6; // Paragraphs by field
|
|
165
165
|
|
|
166
166
|
repeated string paragraphs_to_delete = 7;
|
|
167
|
-
|
|
168
|
-
//
|
|
169
|
-
repeated string
|
|
167
|
+
|
|
168
|
+
// Delete in all vectorsets (e.g: resource deletion)
|
|
169
|
+
repeated string vectors_to_delete_in_all_vectorsets = 8;
|
|
170
|
+
// Delete in some vectorsets (e.g: updating some vectors)
|
|
170
171
|
// vectorset_id -> [vector_key_prefix, ...]
|
|
171
172
|
map<string, StringList> vector_prefixes_to_delete = 15;
|
|
173
|
+
|
|
172
174
|
repeated string relation_fields_to_delete = 16;
|
|
173
175
|
repeated string texts_to_delete = 17;
|
|
174
176
|
|
|
@@ -57,12 +57,11 @@ message VectorIndexConfig {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
message NewShardRequest {
|
|
60
|
+
reserved 4, 5;
|
|
60
61
|
utils.VectorSimilarity similarity = 1 [deprecated = true];
|
|
61
62
|
string kbid = 2;
|
|
62
63
|
utils.ReleaseChannel release_channel = 3;
|
|
63
|
-
|
|
64
|
-
bool normalize_vectors = 4 [deprecated = true];
|
|
65
|
-
VectorIndexConfig config = 5 [deprecated = true];
|
|
64
|
+
|
|
66
65
|
map<string, VectorIndexConfig> vectorsets_configs = 6;
|
|
67
66
|
bool prewarm_enabled = 7;
|
|
68
67
|
|
|
@@ -10,7 +10,7 @@ build-backend = "pdm.backend"
|
|
|
10
10
|
|
|
11
11
|
[project]
|
|
12
12
|
name = "nidx_protos"
|
|
13
|
-
version = "6.9.7.
|
|
13
|
+
version = "6.9.7.post693"
|
|
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" }]
|
{nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/src/graph_query_parser.rs
RENAMED
|
@@ -30,8 +30,6 @@ use tantivy::tokenizer::TokenizerManager;
|
|
|
30
30
|
use crate::io_maps;
|
|
31
31
|
use crate::schema::Schema;
|
|
32
32
|
|
|
33
|
-
const DEFAULT_NODE_VALUE_FUZZY_DISTANCE: u8 = 1;
|
|
34
|
-
|
|
35
33
|
#[derive(Clone)]
|
|
36
34
|
pub struct FuzzyTerm {
|
|
37
35
|
pub value: String,
|
|
@@ -702,56 +700,54 @@ impl TryFrom<&nidx_protos::graph_query::Node> for Node {
|
|
|
702
700
|
|
|
703
701
|
fn try_from(node_pb: &nidx_protos::graph_query::Node) -> Result<Self, Self::Error> {
|
|
704
702
|
let value = node_pb.value.clone().map(|value| {
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
fuzzy_distance: 0,
|
|
712
|
-
is_prefix: true,
|
|
713
|
-
}),
|
|
714
|
-
MatchLocation::Words => Term::ExactWord(value),
|
|
715
|
-
MatchLocation::PrefixWords => Term::FuzzyWord(FuzzyTerm {
|
|
716
|
-
value,
|
|
717
|
-
fuzzy_distance: 0,
|
|
718
|
-
is_prefix: true,
|
|
719
|
-
}),
|
|
720
|
-
},
|
|
721
|
-
nidx_protos::graph_query::node::NewMatchKind::Fuzzy(fuzzy) => match fuzzy.kind() {
|
|
722
|
-
MatchLocation::Full => Term::Fuzzy(FuzzyTerm {
|
|
723
|
-
value,
|
|
724
|
-
fuzzy_distance: fuzzy.distance as u8,
|
|
725
|
-
is_prefix: false,
|
|
726
|
-
}),
|
|
727
|
-
MatchLocation::Prefix => Term::Fuzzy(FuzzyTerm {
|
|
728
|
-
value,
|
|
729
|
-
fuzzy_distance: fuzzy.distance as u8,
|
|
730
|
-
is_prefix: true,
|
|
731
|
-
}),
|
|
732
|
-
MatchLocation::Words => Term::FuzzyWord(FuzzyTerm {
|
|
733
|
-
value,
|
|
734
|
-
fuzzy_distance: fuzzy.distance as u8,
|
|
735
|
-
is_prefix: false,
|
|
736
|
-
}),
|
|
737
|
-
MatchLocation::PrefixWords => Term::FuzzyWord(FuzzyTerm {
|
|
738
|
-
value,
|
|
739
|
-
fuzzy_distance: fuzzy.distance as u8,
|
|
740
|
-
is_prefix: true,
|
|
741
|
-
}),
|
|
703
|
+
// Default to exact match to keep backwards compatibility
|
|
704
|
+
let match_kind = node_pb
|
|
705
|
+
.match_kind
|
|
706
|
+
.unwrap_or(nidx_protos::graph_query::node::MatchKind::Exact(
|
|
707
|
+
nidx_protos::graph_query::node::ExactMatch {
|
|
708
|
+
kind: MatchLocation::Full as i32,
|
|
742
709
|
},
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
match
|
|
746
|
-
|
|
747
|
-
|
|
710
|
+
));
|
|
711
|
+
match match_kind {
|
|
712
|
+
nidx_protos::graph_query::node::MatchKind::Exact(exact) => match exact.kind() {
|
|
713
|
+
MatchLocation::Full => Term::Exact(value),
|
|
714
|
+
MatchLocation::Prefix => Term::Fuzzy(FuzzyTerm {
|
|
748
715
|
value,
|
|
749
|
-
fuzzy_distance:
|
|
716
|
+
fuzzy_distance: 0,
|
|
750
717
|
is_prefix: true,
|
|
751
718
|
}),
|
|
752
|
-
|
|
719
|
+
MatchLocation::Words => Term::ExactWord(value),
|
|
720
|
+
MatchLocation::PrefixWords => Term::FuzzyWord(FuzzyTerm {
|
|
721
|
+
value,
|
|
722
|
+
fuzzy_distance: 0,
|
|
723
|
+
is_prefix: true,
|
|
724
|
+
}),
|
|
725
|
+
},
|
|
726
|
+
nidx_protos::graph_query::node::MatchKind::Fuzzy(fuzzy) => match fuzzy.kind() {
|
|
727
|
+
MatchLocation::Full => Term::Fuzzy(FuzzyTerm {
|
|
728
|
+
value,
|
|
729
|
+
fuzzy_distance: fuzzy.distance as u8,
|
|
730
|
+
is_prefix: false,
|
|
731
|
+
}),
|
|
732
|
+
MatchLocation::Prefix => Term::Fuzzy(FuzzyTerm {
|
|
733
|
+
value,
|
|
734
|
+
fuzzy_distance: fuzzy.distance as u8,
|
|
735
|
+
is_prefix: true,
|
|
736
|
+
}),
|
|
737
|
+
MatchLocation::Words => Term::FuzzyWord(FuzzyTerm {
|
|
738
|
+
value,
|
|
739
|
+
fuzzy_distance: fuzzy.distance as u8,
|
|
740
|
+
is_prefix: false,
|
|
741
|
+
}),
|
|
742
|
+
MatchLocation::PrefixWords => Term::FuzzyWord(FuzzyTerm {
|
|
743
|
+
value,
|
|
744
|
+
fuzzy_distance: fuzzy.distance as u8,
|
|
745
|
+
is_prefix: true,
|
|
746
|
+
}),
|
|
747
|
+
},
|
|
753
748
|
}
|
|
754
749
|
});
|
|
750
|
+
|
|
755
751
|
let node_type = node_pb.node_type.map(NodeType::try_from).transpose()?;
|
|
756
752
|
let node_subtype = node_pb.node_subtype.clone();
|
|
757
753
|
|
|
@@ -29,8 +29,8 @@ mod top_unique_n;
|
|
|
29
29
|
use anyhow::anyhow;
|
|
30
30
|
use nidx_protos::graph_query;
|
|
31
31
|
use nidx_protos::graph_query::node::FuzzyMatch;
|
|
32
|
+
use nidx_protos::graph_query::node::MatchKind;
|
|
32
33
|
use nidx_protos::graph_query::node::MatchLocation;
|
|
33
|
-
use nidx_protos::graph_query::node::NewMatchKind;
|
|
34
34
|
use nidx_protos::graph_query::path_query;
|
|
35
35
|
use nidx_protos::graph_search_request::QueryKind;
|
|
36
36
|
use nidx_protos::{
|
|
@@ -225,7 +225,7 @@ impl RelationSearcher {
|
|
|
225
225
|
source: Some(graph_query::Node {
|
|
226
226
|
value: Some(prefix),
|
|
227
227
|
node_type: Some(NodeType::Entity.into()),
|
|
228
|
-
|
|
228
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
229
229
|
kind: MatchLocation::Prefix.into(),
|
|
230
230
|
distance: FUZZY_DISTANCE as u32,
|
|
231
231
|
})),
|
|
@@ -394,7 +394,6 @@ pub fn encode_relation(relation_type: u64, relation_label: &str) -> Vec<u64> {
|
|
|
394
394
|
out
|
|
395
395
|
}
|
|
396
396
|
|
|
397
|
-
#[allow(dead_code)]
|
|
398
397
|
pub fn decode_relation(data: &[u64]) -> (u64, String) {
|
|
399
398
|
let buffer = data[0].to_le_bytes();
|
|
400
399
|
let relation_type = buffer[0] as u64;
|
{nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_relation/tests/test_graph_search.rs
RENAMED
|
@@ -21,8 +21,7 @@ mod common;
|
|
|
21
21
|
|
|
22
22
|
use std::collections::{HashMap, HashSet};
|
|
23
23
|
|
|
24
|
-
use nidx_protos::graph_query::node::{ExactMatch, FuzzyMatch,
|
|
25
|
-
use nidx_protos::graph_query::node::{MatchKind, MatchLocation};
|
|
24
|
+
use nidx_protos::graph_query::node::{ExactMatch, FuzzyMatch, MatchKind, MatchLocation};
|
|
26
25
|
use nidx_protos::graph_query::path_query::Query;
|
|
27
26
|
use nidx_protos::graph_query::{BoolQuery, FacetFilter, Node, Path, PathQuery, Relation};
|
|
28
27
|
use nidx_protos::graph_search_request::QueryKind;
|
|
@@ -217,7 +216,7 @@ fn test_graph_node_exact_matches() -> anyhow::Result<()> {
|
|
|
217
216
|
Query::Path(Path {
|
|
218
217
|
destination: Some(Node {
|
|
219
218
|
value: Some("Computer science".to_string()),
|
|
220
|
-
|
|
219
|
+
match_kind: Some(MatchKind::Exact(ExactMatch {
|
|
221
220
|
kind: MatchLocation::Full.into(),
|
|
222
221
|
})),
|
|
223
222
|
..Default::default()
|
|
@@ -236,7 +235,7 @@ fn test_graph_node_exact_matches() -> anyhow::Result<()> {
|
|
|
236
235
|
Query::Path(Path {
|
|
237
236
|
destination: Some(Node {
|
|
238
237
|
value: Some("Computer sci".to_string()),
|
|
239
|
-
|
|
238
|
+
match_kind: Some(MatchKind::Exact(ExactMatch {
|
|
240
239
|
kind: MatchLocation::Prefix.into(),
|
|
241
240
|
})),
|
|
242
241
|
..Default::default()
|
|
@@ -253,7 +252,7 @@ fn test_graph_node_exact_matches() -> anyhow::Result<()> {
|
|
|
253
252
|
Query::Path(Path {
|
|
254
253
|
destination: Some(Node {
|
|
255
254
|
value: Some("Compu".to_string()),
|
|
256
|
-
|
|
255
|
+
match_kind: Some(MatchKind::Exact(ExactMatch {
|
|
257
256
|
kind: MatchLocation::Prefix.into(),
|
|
258
257
|
})),
|
|
259
258
|
..Default::default()
|
|
@@ -272,7 +271,7 @@ fn test_graph_node_exact_matches() -> anyhow::Result<()> {
|
|
|
272
271
|
Query::Path(Path {
|
|
273
272
|
destination: Some(Node {
|
|
274
273
|
value: Some("Computer".to_string()),
|
|
275
|
-
|
|
274
|
+
match_kind: Some(MatchKind::Exact(ExactMatch {
|
|
276
275
|
kind: MatchLocation::Words.into(),
|
|
277
276
|
})),
|
|
278
277
|
..Default::default()
|
|
@@ -289,7 +288,7 @@ fn test_graph_node_exact_matches() -> anyhow::Result<()> {
|
|
|
289
288
|
Query::Path(Path {
|
|
290
289
|
destination: Some(Node {
|
|
291
290
|
value: Some("science".to_string()),
|
|
292
|
-
|
|
291
|
+
match_kind: Some(MatchKind::Exact(ExactMatch {
|
|
293
292
|
kind: MatchLocation::Words.into(),
|
|
294
293
|
})),
|
|
295
294
|
..Default::default()
|
|
@@ -308,7 +307,7 @@ fn test_graph_node_exact_matches() -> anyhow::Result<()> {
|
|
|
308
307
|
Query::Path(Path {
|
|
309
308
|
destination: Some(Node {
|
|
310
309
|
value: Some("sci".to_string()),
|
|
311
|
-
|
|
310
|
+
match_kind: Some(MatchKind::Exact(ExactMatch {
|
|
312
311
|
kind: MatchLocation::PrefixWords.into(),
|
|
313
312
|
})),
|
|
314
313
|
..Default::default()
|
|
@@ -328,14 +327,16 @@ fn test_graph_fuzzy_node_query() -> anyhow::Result<()> {
|
|
|
328
327
|
let reader = create_reader()?;
|
|
329
328
|
|
|
330
329
|
// (:~Anastas)
|
|
331
|
-
#[allow(deprecated)]
|
|
332
330
|
let result = search(
|
|
333
331
|
&reader,
|
|
334
332
|
Query::Path(Path {
|
|
335
333
|
source: Some(Node {
|
|
336
334
|
node_subtype: Some("PERSON".to_string()),
|
|
337
335
|
value: Some("Anastas".to_string()),
|
|
338
|
-
match_kind: MatchKind::
|
|
336
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
337
|
+
kind: MatchLocation::Prefix.into(),
|
|
338
|
+
distance: 1,
|
|
339
|
+
})),
|
|
339
340
|
..Default::default()
|
|
340
341
|
}),
|
|
341
342
|
..Default::default()
|
|
@@ -346,14 +347,16 @@ fn test_graph_fuzzy_node_query() -> anyhow::Result<()> {
|
|
|
346
347
|
assert!(relations.contains(&("Anastasia", "IS_FRIEND", "Anna")));
|
|
347
348
|
|
|
348
349
|
// (:~AnXstXsia) with fuzzy=1
|
|
349
|
-
#[allow(deprecated)]
|
|
350
350
|
let result = search(
|
|
351
351
|
&reader,
|
|
352
352
|
Query::Path(Path {
|
|
353
353
|
source: Some(Node {
|
|
354
354
|
node_subtype: Some("PERSON".to_string()),
|
|
355
355
|
value: Some("AnXstXsia".to_string()),
|
|
356
|
-
match_kind: MatchKind::
|
|
356
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
357
|
+
kind: MatchLocation::Full.into(),
|
|
358
|
+
distance: 1,
|
|
359
|
+
})),
|
|
357
360
|
..Default::default()
|
|
358
361
|
}),
|
|
359
362
|
..Default::default()
|
|
@@ -363,14 +366,16 @@ fn test_graph_fuzzy_node_query() -> anyhow::Result<()> {
|
|
|
363
366
|
assert_eq!(relations.len(), 0);
|
|
364
367
|
|
|
365
368
|
// (:~AnXstasia) with fuzzy=1
|
|
366
|
-
#[allow(deprecated)]
|
|
367
369
|
let result = search(
|
|
368
370
|
&reader,
|
|
369
371
|
Query::Path(Path {
|
|
370
372
|
source: Some(Node {
|
|
371
373
|
node_subtype: Some("PERSON".to_string()),
|
|
372
374
|
value: Some("AnXstasia".to_string()),
|
|
373
|
-
match_kind: MatchKind::
|
|
375
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
376
|
+
kind: MatchLocation::Full.into(),
|
|
377
|
+
distance: 1,
|
|
378
|
+
})),
|
|
374
379
|
..Default::default()
|
|
375
380
|
}),
|
|
376
381
|
..Default::default()
|
|
@@ -381,14 +386,16 @@ fn test_graph_fuzzy_node_query() -> anyhow::Result<()> {
|
|
|
381
386
|
assert!(relations.contains(&("Anastasia", "IS_FRIEND", "Anna")));
|
|
382
387
|
|
|
383
388
|
// (:^~Ana) matches Anna & Anastasia
|
|
384
|
-
#[allow(deprecated)]
|
|
385
389
|
let result = search(
|
|
386
390
|
&reader,
|
|
387
391
|
Query::Path(Path {
|
|
388
392
|
source: Some(Node {
|
|
389
393
|
node_subtype: Some("PERSON".to_string()),
|
|
390
394
|
value: Some("Ana".to_string()),
|
|
391
|
-
match_kind: MatchKind::
|
|
395
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
396
|
+
kind: MatchLocation::Prefix.into(),
|
|
397
|
+
distance: 1,
|
|
398
|
+
})),
|
|
392
399
|
..Default::default()
|
|
393
400
|
}),
|
|
394
401
|
..Default::default()
|
|
@@ -416,7 +423,7 @@ fn test_graph_node_fuzzy_matches() -> anyhow::Result<()> {
|
|
|
416
423
|
Query::Path(Path {
|
|
417
424
|
destination: Some(Node {
|
|
418
425
|
value: Some("Computer scXence".to_string()),
|
|
419
|
-
|
|
426
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
420
427
|
kind: MatchLocation::Full.into(),
|
|
421
428
|
distance: 1,
|
|
422
429
|
})),
|
|
@@ -436,7 +443,7 @@ fn test_graph_node_fuzzy_matches() -> anyhow::Result<()> {
|
|
|
436
443
|
Query::Path(Path {
|
|
437
444
|
destination: Some(Node {
|
|
438
445
|
value: Some("CompuXer sci".to_string()),
|
|
439
|
-
|
|
446
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
440
447
|
kind: MatchLocation::Prefix.into(),
|
|
441
448
|
distance: 1,
|
|
442
449
|
})),
|
|
@@ -454,7 +461,7 @@ fn test_graph_node_fuzzy_matches() -> anyhow::Result<()> {
|
|
|
454
461
|
Query::Path(Path {
|
|
455
462
|
destination: Some(Node {
|
|
456
463
|
value: Some("CoXpu".to_string()),
|
|
457
|
-
|
|
464
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
458
465
|
kind: MatchLocation::Prefix.into(),
|
|
459
466
|
distance: 1,
|
|
460
467
|
})),
|
|
@@ -474,7 +481,7 @@ fn test_graph_node_fuzzy_matches() -> anyhow::Result<()> {
|
|
|
474
481
|
Query::Path(Path {
|
|
475
482
|
destination: Some(Node {
|
|
476
483
|
value: Some("ComXuter".to_string()),
|
|
477
|
-
|
|
484
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
478
485
|
kind: MatchLocation::Words.into(),
|
|
479
486
|
distance: 1,
|
|
480
487
|
})),
|
|
@@ -492,7 +499,7 @@ fn test_graph_node_fuzzy_matches() -> anyhow::Result<()> {
|
|
|
492
499
|
Query::Path(Path {
|
|
493
500
|
destination: Some(Node {
|
|
494
501
|
value: Some("sciXnce".to_string()),
|
|
495
|
-
|
|
502
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
496
503
|
kind: MatchLocation::Words.into(),
|
|
497
504
|
distance: 1,
|
|
498
505
|
})),
|
|
@@ -512,7 +519,7 @@ fn test_graph_node_fuzzy_matches() -> anyhow::Result<()> {
|
|
|
512
519
|
Query::Path(Path {
|
|
513
520
|
destination: Some(Node {
|
|
514
521
|
value: Some("scXen".to_string()),
|
|
515
|
-
|
|
522
|
+
match_kind: Some(MatchKind::Fuzzy(FuzzyMatch {
|
|
516
523
|
kind: MatchLocation::PrefixWords.into(),
|
|
517
524
|
distance: 1,
|
|
518
525
|
})),
|
|
@@ -106,6 +106,8 @@ pub struct VectorConfig {
|
|
|
106
106
|
pub vector_cardinality: VectorCardinality,
|
|
107
107
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
|
108
108
|
pub flags: Vec<String>,
|
|
109
|
+
#[serde(default)]
|
|
110
|
+
pub disable_indexes: bool,
|
|
109
111
|
}
|
|
110
112
|
|
|
111
113
|
impl VectorConfig {
|
|
@@ -144,6 +146,7 @@ impl TryFrom<VectorIndexConfig> for VectorConfig {
|
|
|
144
146
|
vector_type,
|
|
145
147
|
flags: vec![],
|
|
146
148
|
vector_cardinality: VectorCardinality::Single,
|
|
149
|
+
disable_indexes: false,
|
|
147
150
|
})
|
|
148
151
|
}
|
|
149
152
|
}
|
|
@@ -81,9 +81,7 @@ impl VectorIndexer {
|
|
|
81
81
|
if let Some(prefixes) = resource.vector_prefixes_to_delete.get(index_name) {
|
|
82
82
|
prefixes.items.clone()
|
|
83
83
|
} else {
|
|
84
|
-
|
|
85
|
-
#[allow(deprecated)]
|
|
86
|
-
resource.sentences_to_delete.clone()
|
|
84
|
+
resource.vectors_to_delete_in_all_vectorsets.clone()
|
|
87
85
|
}
|
|
88
86
|
}
|
|
89
87
|
|
|
@@ -416,6 +416,7 @@ mod tests {
|
|
|
416
416
|
vector_type: VectorType::DenseF32 { dimension: 3 },
|
|
417
417
|
flags: vec![],
|
|
418
418
|
vector_cardinality: VectorCardinality::Single,
|
|
419
|
+
disable_indexes: false,
|
|
419
420
|
};
|
|
420
421
|
let raw_sentences = [
|
|
421
422
|
(
|
|
@@ -511,6 +512,7 @@ mod tests {
|
|
|
511
512
|
vector_type: VectorType::DenseF32 { dimension: 3 },
|
|
512
513
|
flags: vec![],
|
|
513
514
|
vector_cardinality: VectorCardinality::Single,
|
|
515
|
+
disable_indexes: false,
|
|
514
516
|
};
|
|
515
517
|
let raw_sentences = [
|
|
516
518
|
(
|
|
@@ -625,6 +627,7 @@ mod tests {
|
|
|
625
627
|
vector_type: VectorType::DenseF32 { dimension: 3 },
|
|
626
628
|
flags: vec![],
|
|
627
629
|
vector_cardinality: VectorCardinality::Single,
|
|
630
|
+
disable_indexes: false,
|
|
628
631
|
};
|
|
629
632
|
let raw_sentences = [
|
|
630
633
|
(
|
|
@@ -56,7 +56,7 @@ pub fn open(metadata: VectorSegmentMetadata, config: &VectorConfig) -> VectorR<O
|
|
|
56
56
|
let data_store = DataStoreV2::open(path, &config.vector_type, OpenReason::Search { prewarm })?;
|
|
57
57
|
// Build the index at runtime if they do not exist. This can
|
|
58
58
|
// be removed once we have migrated all existing indexes
|
|
59
|
-
if !InvertedIndexes::exists(path) {
|
|
59
|
+
if !InvertedIndexes::exists(path) && !config.disable_indexes {
|
|
60
60
|
build_indexes(path, &data_store)?;
|
|
61
61
|
}
|
|
62
62
|
Box::new(data_store)
|
|
@@ -64,7 +64,15 @@ pub fn open(metadata: VectorSegmentMetadata, config: &VectorConfig) -> VectorR<O
|
|
|
64
64
|
|
|
65
65
|
let index = open_disk_hnsw(path, prewarm)?;
|
|
66
66
|
|
|
67
|
-
let inverted_indexes =
|
|
67
|
+
let inverted_indexes = if !config.disable_indexes {
|
|
68
|
+
Some(InvertedIndexes::open(
|
|
69
|
+
path,
|
|
70
|
+
metadata.records,
|
|
71
|
+
inverted_index::OpenOptions { prewarm },
|
|
72
|
+
)?)
|
|
73
|
+
} else {
|
|
74
|
+
None
|
|
75
|
+
};
|
|
68
76
|
let alive_bitset = FilterBitSet::new(metadata.records, true);
|
|
69
77
|
|
|
70
78
|
Ok(OpenSegment {
|
|
@@ -160,12 +168,16 @@ fn merge_indexes<DS: DataStore + 'static>(
|
|
|
160
168
|
},
|
|
161
169
|
};
|
|
162
170
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
171
|
+
let inverted_indexes = if !config.disable_indexes {
|
|
172
|
+
build_indexes(segment_path, &data_store)?;
|
|
173
|
+
Some(InvertedIndexes::open(
|
|
174
|
+
segment_path,
|
|
175
|
+
merged_vectors_count as usize,
|
|
176
|
+
inverted_index::OpenOptions { prewarm: false },
|
|
177
|
+
)?)
|
|
178
|
+
} else {
|
|
179
|
+
None
|
|
180
|
+
};
|
|
169
181
|
let alive_bitset = FilterBitSet::new(metadata.records, true);
|
|
170
182
|
|
|
171
183
|
Ok(OpenSegment {
|
|
@@ -250,12 +262,15 @@ fn create_indexes<DS: DataStore + 'static>(
|
|
|
250
262
|
index_metadata: VectorSegmentMeta { tags },
|
|
251
263
|
};
|
|
252
264
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
265
|
+
let inverted_indexes = if !config.disable_indexes {
|
|
266
|
+
Some(InvertedIndexes::open(
|
|
267
|
+
path,
|
|
268
|
+
vector_count as usize,
|
|
269
|
+
inverted_index::OpenOptions { prewarm: false },
|
|
270
|
+
)?)
|
|
271
|
+
} else {
|
|
272
|
+
None
|
|
273
|
+
};
|
|
259
274
|
let alive_bitset = FilterBitSet::new(metadata.records, true);
|
|
260
275
|
|
|
261
276
|
Ok(OpenSegment {
|
|
@@ -396,7 +411,7 @@ pub struct OpenSegment {
|
|
|
396
411
|
metadata: VectorSegmentMetadata,
|
|
397
412
|
data_store: Box<dyn DataStore>,
|
|
398
413
|
index: Box<dyn DiskHnsw>,
|
|
399
|
-
inverted_indexes: InvertedIndexes
|
|
414
|
+
inverted_indexes: Option<InvertedIndexes>,
|
|
400
415
|
alive_bitset: FilterBitSet,
|
|
401
416
|
}
|
|
402
417
|
|
|
@@ -408,7 +423,10 @@ impl AsRef<OpenSegment> for OpenSegment {
|
|
|
408
423
|
|
|
409
424
|
impl OpenSegment {
|
|
410
425
|
pub fn apply_deletion(&mut self, key: &str) {
|
|
411
|
-
|
|
426
|
+
let Some(inverted_indexes) = &self.inverted_indexes else {
|
|
427
|
+
return;
|
|
428
|
+
};
|
|
429
|
+
if let Some(deleted_ids) = inverted_indexes.ids_for_deletion_key(key) {
|
|
412
430
|
for id in deleted_ids {
|
|
413
431
|
self.alive_bitset.remove(id);
|
|
414
432
|
}
|
|
@@ -428,7 +446,9 @@ impl OpenSegment {
|
|
|
428
446
|
}
|
|
429
447
|
|
|
430
448
|
pub fn space_usage(&self) -> usize {
|
|
431
|
-
self.data_store.size_bytes()
|
|
449
|
+
self.data_store.size_bytes()
|
|
450
|
+
+ self.index.size()
|
|
451
|
+
+ self.inverted_indexes.as_ref().map_or(0, InvertedIndexes::space_usage)
|
|
432
452
|
}
|
|
433
453
|
|
|
434
454
|
pub fn get_paragraph(&self, id: ParagraphAddr) -> ParagraphRef<'_> {
|
|
@@ -478,7 +498,7 @@ impl OpenSegment {
|
|
|
478
498
|
};
|
|
479
499
|
let retriever = Retriever::new(data_store, config, min_score);
|
|
480
500
|
|
|
481
|
-
let mut filter_bitset = self.inverted_indexes.filter(filter);
|
|
501
|
+
let mut filter_bitset = self.inverted_indexes.as_ref().and_then(|ii| ii.filter(filter));
|
|
482
502
|
if let Some(ref mut bitset) = filter_bitset {
|
|
483
503
|
bitset.intersect_with(&self.alive_bitset);
|
|
484
504
|
}
|
|
@@ -710,6 +730,7 @@ mod test {
|
|
|
710
730
|
normalize_vectors: false,
|
|
711
731
|
flags: vec![],
|
|
712
732
|
vector_cardinality: VectorCardinality::Single,
|
|
733
|
+
disable_indexes: false,
|
|
713
734
|
};
|
|
714
735
|
let mut rng = SmallRng::seed_from_u64(1234567890);
|
|
715
736
|
let temp_dir = tempdir()?;
|
|
@@ -756,6 +777,7 @@ mod test {
|
|
|
756
777
|
normalize_vectors: false,
|
|
757
778
|
flags: vec![],
|
|
758
779
|
vector_cardinality: VectorCardinality::Single,
|
|
780
|
+
disable_indexes: false,
|
|
759
781
|
};
|
|
760
782
|
let mut rng = SmallRng::seed_from_u64(1234567890);
|
|
761
783
|
|
|
@@ -834,6 +856,7 @@ mod test {
|
|
|
834
856
|
normalize_vectors: false,
|
|
835
857
|
flags: vec![],
|
|
836
858
|
vector_cardinality: VectorCardinality::Single,
|
|
859
|
+
disable_indexes: false,
|
|
837
860
|
};
|
|
838
861
|
|
|
839
862
|
// Create a segment
|
{nidx_binding-6.9.7.post683 → nidx_binding-6.9.7.post693}/nidx_vector/tests/test_basic_search.rs
RENAMED
|
@@ -62,6 +62,7 @@ fn test_basic_search(
|
|
|
62
62
|
normalize_vectors: false,
|
|
63
63
|
flags,
|
|
64
64
|
vector_cardinality: VectorCardinality::Single,
|
|
65
|
+
disable_indexes: false,
|
|
65
66
|
};
|
|
66
67
|
|
|
67
68
|
// Creates a resource with some orthogonal vectors, to test search
|
|
@@ -163,6 +164,7 @@ fn test_deletions() -> anyhow::Result<()> {
|
|
|
163
164
|
normalize_vectors: false,
|
|
164
165
|
flags: vec![],
|
|
165
166
|
vector_cardinality: VectorCardinality::Single,
|
|
167
|
+
disable_indexes: false,
|
|
166
168
|
};
|
|
167
169
|
|
|
168
170
|
// Creates a couple of resources
|
|
@@ -240,6 +242,7 @@ fn test_filtered_search() -> anyhow::Result<()> {
|
|
|
240
242
|
normalize_vectors: false,
|
|
241
243
|
flags: vec![],
|
|
242
244
|
vector_cardinality: VectorCardinality::Single,
|
|
245
|
+
disable_indexes: false,
|
|
243
246
|
};
|
|
244
247
|
|
|
245
248
|
// Create 4 resources
|