nidx-binding 6.10.0.post725__tar.gz → 6.10.0.post732__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.10.0.post725 → nidx_binding-6.10.0.post732}/Cargo.lock +23 -3
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/Cargo.toml +1 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/PKG-INFO +1 -1
- nidx_binding-6.10.0.post732/migrations/20251218173017_vector_relation_index_kinds.sql +2 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/nodereader.proto +23 -7
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/noderesources.proto +2 -2
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/pyproject.toml +1 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/graph_query_parser.rs +109 -30
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/lib.rs +5 -2
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/reader.rs +40 -32
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/tests/test_graph_query_parser_search.rs +14 -13
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/tests/test_graph_search.rs +3 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/config.rs +23 -3
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/indexer.rs +52 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/inverted_index.rs +14 -12
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/lib.rs +9 -7
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/searcher.rs +0 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/segment.rs +10 -14
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/tests/test_relation.rs +81 -6
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/pyproject.toml +1 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/api/grpc.rs +3 -4
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/api/shards.rs +1 -4
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/indexer.rs +4 -2
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metadata/index.rs +17 -3
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metrics.rs +2 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/scheduler/merge_task.rs +3 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/index_cache.rs +3 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/query_planner.rs +99 -2
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/shard_search.rs +145 -6
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/sync.rs +17 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/worker.rs +1 -1
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/mod.rs +1 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/shards_api.rs +4 -4
- nidx_binding-6.10.0.post732/tests/integration/vector_relation_index.rs +334 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.config/nextest.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/.sqlx/query-fd97b359c7a7cdc573b2112efbafb9956ae71d8f875c38140cba1c04b7084b47.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/README.md +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/migrations/20241007163501_initial.sql +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/migrations/20241211120039_merge_job_priority.sql +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/migrations/20241211121159_basic_indexes.sql +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/migrations/20241212151105_check_segment_records.sql +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/migrations/20250110145554_in_flight_messages.sql +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_binding/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_binding/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/fuzzy_query.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/query_io.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/query_parser/stop_words.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/query_parser/tokenizer.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/query_parser.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/reader.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/request_types.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/resource_indexer.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/schema.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/search_query.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/search_response.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/src/set_query.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/README.md +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/ar.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/az.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/bn.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/ca.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/ch.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/da.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/de.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/el.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/en.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/es.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/eu.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/extract.py +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/fi.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/fr.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/he.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/hu.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/id.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/it.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/kk.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/ne.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/nl.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/no.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/pt.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/ro.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/ru.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/sl.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/sv.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/tg.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/stop_words/tr.json +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/tests/common/mod.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_paragraph/tests/reader.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/build.py +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/build.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/nidx.proto +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/nodewriter.proto +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_protos/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/graph_collector.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/io_maps.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/resource_indexer.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/schema.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/top_unique_n.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/tests/common/mod.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/tests/test_writer.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_tantivy/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_tantivy/src/index_reader.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_tantivy/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_tantivy/src/utils.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_tests/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_tests/src/graph.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_tests/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/prefilter.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/query_io.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/reader.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/request_types.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/resource_indexer.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/schema.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/src/search_query.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/tests/common/mod.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/tests/test_deletions.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/tests/test_flow.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/tests/test_search.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_text/tests/test_streaming.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_types/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_types/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_types/src/prefilter.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_types/src/query_language.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/Cargo.toml +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v1/node.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v1/store.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v1/trie.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v1.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v2/quant_vector_store.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store/v2.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_store.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/data_types.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/field_list_metadata.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/formula.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw/build.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw/disk/v1.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw/disk/v2.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw/disk.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw/params.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw/ram_hnsw.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw/search.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/hnsw.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/inverted_index/map.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/inverted_index/paragraph.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/inverted_index/relation.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/multivector.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/query_io.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/request_types.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/segment/tests.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/utils.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/vector_types/mod.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/src/vector_types/rabitq.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/tests/common/mod.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/tests/test_basic_search.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/tests/test_hidden.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_vector/tests/test_maxsim.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/api.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/control.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/errors.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/grpc_server.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/import_export.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/lib.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/main.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metadata/deletion.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metadata/index_request.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metadata/merge_job.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metadata/segment.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metadata/shard.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/metadata.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/scheduler/audit_task.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/scheduler/log_merge.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/scheduler/metrics_task.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/scheduler/purge_tasks.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/scheduler/vector_merge.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/scheduler.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/grpc.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/query_language.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/shard_selector.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/shard_suggest.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher/streams.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/searcher.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/segment_store.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/settings.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/telemetry/duration_layer.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/telemetry/log_format.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/telemetry/middleware.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/telemetry.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/tool.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/src/utilization_tracker.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/common/mod.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/common/services.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/date_range_search.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/search_filtering.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/search_relations.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/search_sorting.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/searcher_cluster.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/security_search.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/shards.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/suggest.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/synced_searcher.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/vector_normalization.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/integration/vectorsets.rs +0 -0
- {nidx_binding-6.10.0.post725 → nidx_binding-6.10.0.post732}/tests/test_integration.rs +0 -0
|
@@ -1023,6 +1023,12 @@ version = "0.1.5"
|
|
|
1023
1023
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1024
1024
|
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
|
1025
1025
|
|
|
1026
|
+
[[package]]
|
|
1027
|
+
name = "foldhash"
|
|
1028
|
+
version = "0.2.0"
|
|
1029
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1030
|
+
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
|
|
1031
|
+
|
|
1026
1032
|
[[package]]
|
|
1027
1033
|
name = "foreign-types"
|
|
1028
1034
|
version = "0.3.2"
|
|
@@ -1263,7 +1269,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
|
|
|
1263
1269
|
dependencies = [
|
|
1264
1270
|
"allocator-api2",
|
|
1265
1271
|
"equivalent",
|
|
1266
|
-
"foldhash",
|
|
1272
|
+
"foldhash 0.1.5",
|
|
1267
1273
|
]
|
|
1268
1274
|
|
|
1269
1275
|
[[package]]
|
|
@@ -1271,6 +1277,11 @@ name = "hashbrown"
|
|
|
1271
1277
|
version = "0.16.1"
|
|
1272
1278
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1273
1279
|
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
|
|
1280
|
+
dependencies = [
|
|
1281
|
+
"allocator-api2",
|
|
1282
|
+
"equivalent",
|
|
1283
|
+
"foldhash 0.2.0",
|
|
1284
|
+
]
|
|
1274
1285
|
|
|
1275
1286
|
[[package]]
|
|
1276
1287
|
name = "hashlink"
|
|
@@ -2002,6 +2013,15 @@ dependencies = [
|
|
|
2002
2013
|
"hashbrown 0.15.5",
|
|
2003
2014
|
]
|
|
2004
2015
|
|
|
2016
|
+
[[package]]
|
|
2017
|
+
name = "lru"
|
|
2018
|
+
version = "0.16.3"
|
|
2019
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2020
|
+
checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
|
|
2021
|
+
dependencies = [
|
|
2022
|
+
"hashbrown 0.16.1",
|
|
2023
|
+
]
|
|
2024
|
+
|
|
2005
2025
|
[[package]]
|
|
2006
2026
|
name = "lru-slab"
|
|
2007
2027
|
version = "0.1.2"
|
|
@@ -2158,7 +2178,7 @@ dependencies = [
|
|
|
2158
2178
|
"k8s-openapi",
|
|
2159
2179
|
"kube",
|
|
2160
2180
|
"lazy_static",
|
|
2161
|
-
"lru",
|
|
2181
|
+
"lru 0.16.3",
|
|
2162
2182
|
"nidx_paragraph",
|
|
2163
2183
|
"nidx_protos",
|
|
2164
2184
|
"nidx_relation",
|
|
@@ -4409,7 +4429,7 @@ dependencies = [
|
|
|
4409
4429
|
"itertools 0.14.0",
|
|
4410
4430
|
"levenshtein_automata",
|
|
4411
4431
|
"log",
|
|
4412
|
-
"lru",
|
|
4432
|
+
"lru 0.12.5",
|
|
4413
4433
|
"lz4_flex",
|
|
4414
4434
|
"measure_time",
|
|
4415
4435
|
"memmap2 0.9.9",
|
|
@@ -31,7 +31,7 @@ tracing = "0.1.40"
|
|
|
31
31
|
tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json"] }
|
|
32
32
|
nidx_protos = { version = "0.1.0", path = "nidx_protos" }
|
|
33
33
|
tonic = "0.12.3"
|
|
34
|
-
lru = "0.
|
|
34
|
+
lru = "0.16"
|
|
35
35
|
nidx_text = { version = "0.1.0", path = "nidx_text" }
|
|
36
36
|
nidx_paragraph = { version = "0.1.0", path = "nidx_paragraph" }
|
|
37
37
|
nidx_relation = { version = "0.1.0", path = "nidx_relation" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nidx_binding
|
|
3
|
-
Version: 6.10.0.
|
|
3
|
+
Version: 6.10.0.post732
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -2,8 +2,8 @@ syntax = "proto3";
|
|
|
2
2
|
|
|
3
3
|
package nodereader;
|
|
4
4
|
|
|
5
|
-
import public "nidx_protos/noderesources.proto";
|
|
6
5
|
import "google/protobuf/timestamp.proto";
|
|
6
|
+
import public "nidx_protos/noderesources.proto";
|
|
7
7
|
import public "nucliadb_protos/utils.proto";
|
|
8
8
|
|
|
9
9
|
message StreamFilter {
|
|
@@ -17,18 +17,16 @@ message StreamFilter {
|
|
|
17
17
|
repeated string labels = 2;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
21
20
|
message Faceted {
|
|
22
21
|
repeated string labels = 1;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
|
-
|
|
26
24
|
message OrderBy {
|
|
27
25
|
reserved 1;
|
|
28
26
|
|
|
29
27
|
enum OrderType {
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
DESC = 0;
|
|
29
|
+
ASC = 1;
|
|
32
30
|
}
|
|
33
31
|
enum OrderField {
|
|
34
32
|
CREATED = 0;
|
|
@@ -179,15 +177,31 @@ message GraphQuery {
|
|
|
179
177
|
uint32 distance = 2;
|
|
180
178
|
}
|
|
181
179
|
|
|
180
|
+
message VectorMatch {
|
|
181
|
+
repeated float vector = 1;
|
|
182
|
+
}
|
|
183
|
+
|
|
182
184
|
oneof match_kind {
|
|
183
185
|
ExactMatch exact = 5;
|
|
184
186
|
FuzzyMatch fuzzy = 6;
|
|
187
|
+
VectorMatch vector = 7;
|
|
185
188
|
}
|
|
186
189
|
}
|
|
187
190
|
|
|
188
191
|
message Relation {
|
|
189
192
|
optional string value = 1;
|
|
190
193
|
optional utils.Relation.RelationType relation_type = 2;
|
|
194
|
+
|
|
195
|
+
message ExactMatch {}
|
|
196
|
+
|
|
197
|
+
message VectorMatch {
|
|
198
|
+
repeated float vector = 1;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
oneof match_kind {
|
|
202
|
+
ExactMatch exact = 3;
|
|
203
|
+
VectorMatch vector = 4;
|
|
204
|
+
}
|
|
191
205
|
}
|
|
192
206
|
|
|
193
207
|
message Path {
|
|
@@ -237,6 +251,8 @@ message GraphSearchRequest {
|
|
|
237
251
|
|
|
238
252
|
optional utils.Security security = 5;
|
|
239
253
|
optional FilterExpression field_filter = 6;
|
|
254
|
+
|
|
255
|
+
optional string graph_vectorset = 7;
|
|
240
256
|
}
|
|
241
257
|
|
|
242
258
|
message GraphSearchResponse {
|
|
@@ -260,6 +276,7 @@ message GraphSearchResponse {
|
|
|
260
276
|
repeated utils.RelationNode nodes = 1;
|
|
261
277
|
repeated Relation relations = 2;
|
|
262
278
|
repeated Path graph = 3;
|
|
279
|
+
repeated float scores = 4;
|
|
263
280
|
}
|
|
264
281
|
|
|
265
282
|
message FilterExpression {
|
|
@@ -324,6 +341,7 @@ message SearchRequest {
|
|
|
324
341
|
repeated float vector = 10; // Embedded vector search.
|
|
325
342
|
|
|
326
343
|
string vectorset = 15;
|
|
344
|
+
optional string graph_vectorset = 30;
|
|
327
345
|
|
|
328
346
|
bool paragraph = 12;
|
|
329
347
|
bool document = 13;
|
|
@@ -351,7 +369,6 @@ message SearchRequest {
|
|
|
351
369
|
GraphSearch graph_search = 29;
|
|
352
370
|
}
|
|
353
371
|
|
|
354
|
-
|
|
355
372
|
enum SuggestFeatures {
|
|
356
373
|
ENTITIES = 0;
|
|
357
374
|
PARAGRAPHS = 1;
|
|
@@ -368,7 +385,6 @@ message SuggestRequest {
|
|
|
368
385
|
FilterOperator filter_operator = 9;
|
|
369
386
|
}
|
|
370
387
|
|
|
371
|
-
|
|
372
388
|
message SuggestResponse {
|
|
373
389
|
int32 total = 1;
|
|
374
390
|
repeated ParagraphResult results = 2;
|
|
@@ -167,7 +167,7 @@ message Resource {
|
|
|
167
167
|
bool skip_paragraphs = 19;
|
|
168
168
|
|
|
169
169
|
repeated RelationNodeVector relation_node_vectors = 20;
|
|
170
|
-
repeated
|
|
170
|
+
repeated RelationEdgeVector relation_edge_vectors = 21;
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
message RelationNodeVector {
|
|
@@ -175,7 +175,7 @@ message RelationNodeVector {
|
|
|
175
175
|
repeated float vector = 2;
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
message
|
|
178
|
+
message RelationEdgeVector {
|
|
179
179
|
utils.Relation.RelationType relation_type = 1;
|
|
180
180
|
string relation_label = 2;
|
|
181
181
|
repeated float vector = 3;
|
|
@@ -10,7 +10,7 @@ build-backend = "pdm.backend"
|
|
|
10
10
|
|
|
11
11
|
[project]
|
|
12
12
|
name = "nidx_protos"
|
|
13
|
-
version = "6.10.0.
|
|
13
|
+
version = "6.10.0.post732"
|
|
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.10.0.post725 → nidx_binding-6.10.0.post732}/nidx_relation/src/graph_query_parser.rs
RENAMED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
use std::collections::HashMap;
|
|
2
|
+
|
|
1
3
|
// Copyright (C) 2021 Bosutech XXI S.L.
|
|
2
4
|
//
|
|
3
5
|
// nucliadb is offered under the AGPL v3.0 and as commercial software.
|
|
@@ -23,7 +25,9 @@ use nidx_protos::graph_query::node::MatchLocation;
|
|
|
23
25
|
use nidx_protos::relation::RelationType;
|
|
24
26
|
use nidx_protos::relation_node::NodeType;
|
|
25
27
|
use nidx_types::query_language::{BooleanExpression, BooleanOperation, Operator};
|
|
26
|
-
use tantivy::query::{
|
|
28
|
+
use tantivy::query::{
|
|
29
|
+
AllQuery, BooleanQuery, BoostQuery, EmptyQuery, FuzzyTermQuery, Occur, Query, TermQuery, TermSetQuery,
|
|
30
|
+
};
|
|
27
31
|
use tantivy::schema::{Facet, Field, IndexRecordOption};
|
|
28
32
|
use tantivy::tokenizer::TokenizerManager;
|
|
29
33
|
|
|
@@ -43,6 +47,13 @@ pub enum Term {
|
|
|
43
47
|
ExactWord(String),
|
|
44
48
|
Fuzzy(FuzzyTerm),
|
|
45
49
|
FuzzyWord(FuzzyTerm),
|
|
50
|
+
FromVectorQuery(String),
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
#[derive(Clone)]
|
|
54
|
+
pub enum RelationTerm {
|
|
55
|
+
Exact(String),
|
|
56
|
+
FromVectorQuery(String),
|
|
46
57
|
}
|
|
47
58
|
|
|
48
59
|
#[derive(Default, Clone)]
|
|
@@ -54,7 +65,7 @@ pub struct Node {
|
|
|
54
65
|
|
|
55
66
|
#[derive(Default, Clone)]
|
|
56
67
|
pub struct Relation {
|
|
57
|
-
pub
|
|
68
|
+
pub label: Option<RelationTerm>,
|
|
58
69
|
pub relation_type: Option<RelationType>,
|
|
59
70
|
}
|
|
60
71
|
|
|
@@ -138,13 +149,23 @@ struct NodeSchemaFields {
|
|
|
138
149
|
node_subtype: Field,
|
|
139
150
|
}
|
|
140
151
|
|
|
152
|
+
#[derive(Default)]
|
|
153
|
+
pub struct VectorQueryResults {
|
|
154
|
+
pub nodes: HashMap<String, Vec<(String, f32)>>,
|
|
155
|
+
pub edges: HashMap<String, Vec<(String, f32)>>,
|
|
156
|
+
}
|
|
157
|
+
|
|
141
158
|
pub struct GraphQueryParser<'a> {
|
|
142
159
|
schema: &'a Schema,
|
|
160
|
+
vector_results: VectorQueryResults,
|
|
143
161
|
}
|
|
144
162
|
|
|
145
163
|
impl<'a> GraphQueryParser<'a> {
|
|
146
|
-
pub fn new(schema: &'a Schema) -> Self {
|
|
147
|
-
Self {
|
|
164
|
+
pub fn new(schema: &'a Schema, context: VectorQueryResults) -> Self {
|
|
165
|
+
Self {
|
|
166
|
+
schema,
|
|
167
|
+
vector_results: context,
|
|
168
|
+
}
|
|
148
169
|
}
|
|
149
170
|
|
|
150
171
|
pub fn parse_bool(&self, query: BoolGraphQuery) -> Box<dyn Query> {
|
|
@@ -422,11 +443,12 @@ impl<'a> GraphQueryParser<'a> {
|
|
|
422
443
|
let mut subqueries = vec![];
|
|
423
444
|
|
|
424
445
|
match expression {
|
|
425
|
-
Expression::Value(Relation {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
446
|
+
Expression::Value(Relation {
|
|
447
|
+
label: term,
|
|
448
|
+
relation_type,
|
|
449
|
+
}) => {
|
|
450
|
+
if let Some(term) = term {
|
|
451
|
+
subqueries.push((Occur::Must, self.has_relation_label(term)));
|
|
430
452
|
};
|
|
431
453
|
|
|
432
454
|
relation_type.map(|relation_type| {
|
|
@@ -434,11 +456,12 @@ impl<'a> GraphQueryParser<'a> {
|
|
|
434
456
|
});
|
|
435
457
|
}
|
|
436
458
|
|
|
437
|
-
Expression::Not(Relation {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
459
|
+
Expression::Not(Relation {
|
|
460
|
+
label: term,
|
|
461
|
+
relation_type,
|
|
462
|
+
}) => {
|
|
463
|
+
if let Some(term) = term {
|
|
464
|
+
subqueries.push((Occur::MustNot, self.has_relation_label(term)));
|
|
442
465
|
};
|
|
443
466
|
|
|
444
467
|
relation_type.map(|relation_type| {
|
|
@@ -448,15 +471,10 @@ impl<'a> GraphQueryParser<'a> {
|
|
|
448
471
|
|
|
449
472
|
Expression::Or(relations) => {
|
|
450
473
|
subqueries.extend(relations.iter().flat_map(|relation| {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
Some((Occur::Should, self.has_relation_label(label)))
|
|
456
|
-
}
|
|
457
|
-
} else {
|
|
458
|
-
None
|
|
459
|
-
}
|
|
474
|
+
relation
|
|
475
|
+
.label
|
|
476
|
+
.as_ref()
|
|
477
|
+
.map(|term| (Occur::Should, self.has_relation_label(term)))
|
|
460
478
|
}));
|
|
461
479
|
}
|
|
462
480
|
};
|
|
@@ -465,9 +483,31 @@ impl<'a> GraphQueryParser<'a> {
|
|
|
465
483
|
}
|
|
466
484
|
|
|
467
485
|
fn has_node_value(&self, value: &Term, exact_field: Field, tokenized_field: Field) -> Option<Box<dyn Query>> {
|
|
486
|
+
if let Term::FromVectorQuery(key) = value {
|
|
487
|
+
let Some(keys) = self.vector_results.nodes.get(key) else {
|
|
488
|
+
return Some(Box::new(EmptyQuery));
|
|
489
|
+
};
|
|
490
|
+
|
|
491
|
+
return Some(Box::new(BooleanQuery::union(
|
|
492
|
+
keys.iter()
|
|
493
|
+
.map(|(value, score)| {
|
|
494
|
+
let q: Box<dyn Query> = Box::new(BoostQuery::new(
|
|
495
|
+
Box::new(TermQuery::new(
|
|
496
|
+
tantivy::Term::from_field_text(exact_field, &self.schema.normalize(value)),
|
|
497
|
+
IndexRecordOption::Basic,
|
|
498
|
+
)),
|
|
499
|
+
*score,
|
|
500
|
+
));
|
|
501
|
+
q
|
|
502
|
+
})
|
|
503
|
+
.collect(),
|
|
504
|
+
)));
|
|
505
|
+
}
|
|
506
|
+
|
|
468
507
|
let text_value = match value {
|
|
469
508
|
Term::Exact(value) | Term::ExactWord(value) => value,
|
|
470
509
|
Term::Fuzzy(fuzzy) | Term::FuzzyWord(fuzzy) => &fuzzy.value,
|
|
510
|
+
Term::FromVectorQuery(_) => unreachable!(),
|
|
471
511
|
};
|
|
472
512
|
if text_value.is_empty() {
|
|
473
513
|
return None;
|
|
@@ -513,6 +553,7 @@ impl<'a> GraphQueryParser<'a> {
|
|
|
513
553
|
))
|
|
514
554
|
}
|
|
515
555
|
}
|
|
556
|
+
Term::FromVectorQuery(_) => unreachable!(),
|
|
516
557
|
};
|
|
517
558
|
|
|
518
559
|
Some(query)
|
|
@@ -533,11 +574,33 @@ impl<'a> GraphQueryParser<'a> {
|
|
|
533
574
|
))
|
|
534
575
|
}
|
|
535
576
|
|
|
536
|
-
fn has_relation_label(&self,
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
577
|
+
fn has_relation_label(&self, term: &RelationTerm) -> Box<dyn Query> {
|
|
578
|
+
match term {
|
|
579
|
+
RelationTerm::Exact(label) => Box::new(TermQuery::new(
|
|
580
|
+
tantivy::Term::from_field_text(self.schema.label, label),
|
|
581
|
+
IndexRecordOption::Basic,
|
|
582
|
+
)),
|
|
583
|
+
RelationTerm::FromVectorQuery(key) => {
|
|
584
|
+
let Some(keys) = self.vector_results.edges.get(key) else {
|
|
585
|
+
return Box::new(EmptyQuery);
|
|
586
|
+
};
|
|
587
|
+
|
|
588
|
+
Box::new(BooleanQuery::union(
|
|
589
|
+
keys.iter()
|
|
590
|
+
.map(|(value, score)| {
|
|
591
|
+
let q: Box<dyn Query> = Box::new(BoostQuery::new(
|
|
592
|
+
Box::new(TermQuery::new(
|
|
593
|
+
tantivy::Term::from_field_text(self.schema.label, &self.schema.normalize(value)),
|
|
594
|
+
IndexRecordOption::Basic,
|
|
595
|
+
)),
|
|
596
|
+
*score,
|
|
597
|
+
));
|
|
598
|
+
q
|
|
599
|
+
})
|
|
600
|
+
.collect(),
|
|
601
|
+
))
|
|
602
|
+
}
|
|
603
|
+
}
|
|
541
604
|
}
|
|
542
605
|
|
|
543
606
|
fn has_relation_type(&self, relation_type: RelationType) -> Box<dyn Query> {
|
|
@@ -703,7 +766,8 @@ impl TryFrom<&nidx_protos::graph_query::Node> for Node {
|
|
|
703
766
|
// Default to exact match to keep backwards compatibility
|
|
704
767
|
let match_kind = node_pb
|
|
705
768
|
.match_kind
|
|
706
|
-
.
|
|
769
|
+
.as_ref()
|
|
770
|
+
.unwrap_or(&nidx_protos::graph_query::node::MatchKind::Exact(
|
|
707
771
|
nidx_protos::graph_query::node::ExactMatch {
|
|
708
772
|
kind: MatchLocation::Full as i32,
|
|
709
773
|
},
|
|
@@ -745,6 +809,7 @@ impl TryFrom<&nidx_protos::graph_query::Node> for Node {
|
|
|
745
809
|
is_prefix: true,
|
|
746
810
|
}),
|
|
747
811
|
},
|
|
812
|
+
nidx_protos::graph_query::node::MatchKind::Vector(_) => Term::FromVectorQuery(value),
|
|
748
813
|
}
|
|
749
814
|
});
|
|
750
815
|
|
|
@@ -764,8 +829,22 @@ impl TryFrom<&nidx_protos::graph_query::Relation> for Relation {
|
|
|
764
829
|
|
|
765
830
|
fn try_from(relation_pb: &nidx_protos::graph_query::Relation) -> Result<Self, Self::Error> {
|
|
766
831
|
let value = relation_pb.value.clone();
|
|
832
|
+
let term = value.map(|value| {
|
|
833
|
+
match relation_pb
|
|
834
|
+
.match_kind
|
|
835
|
+
.as_ref()
|
|
836
|
+
.unwrap_or(&nidx_protos::graph_query::relation::MatchKind::Exact(
|
|
837
|
+
nidx_protos::graph_query::relation::ExactMatch {},
|
|
838
|
+
)) {
|
|
839
|
+
nidx_protos::graph_query::relation::MatchKind::Exact(_) => RelationTerm::Exact(value),
|
|
840
|
+
nidx_protos::graph_query::relation::MatchKind::Vector(_) => RelationTerm::FromVectorQuery(value),
|
|
841
|
+
}
|
|
842
|
+
});
|
|
767
843
|
let relation_type = relation_pb.relation_type.map(RelationType::try_from).transpose()?;
|
|
768
844
|
|
|
769
|
-
Ok(Relation {
|
|
845
|
+
Ok(Relation {
|
|
846
|
+
label: term,
|
|
847
|
+
relation_type,
|
|
848
|
+
})
|
|
770
849
|
}
|
|
771
850
|
}
|
|
@@ -57,6 +57,8 @@ use tantivy::{
|
|
|
57
57
|
use tracing::{error, instrument};
|
|
58
58
|
use uuid::Uuid;
|
|
59
59
|
|
|
60
|
+
use crate::graph_query_parser::VectorQueryResults;
|
|
61
|
+
|
|
60
62
|
/// Minimum length for a word to be accepted as a entity to search for
|
|
61
63
|
/// suggestions. Low values can provide too much noise and higher ones can
|
|
62
64
|
/// remove important words from suggestion
|
|
@@ -211,8 +213,9 @@ impl RelationSearcher {
|
|
|
211
213
|
&self,
|
|
212
214
|
request: &GraphSearchRequest,
|
|
213
215
|
prefilter: &PrefilterResult,
|
|
216
|
+
context: VectorQueryResults,
|
|
214
217
|
) -> anyhow::Result<GraphSearchResponse> {
|
|
215
|
-
self.reader.graph_search(request, prefilter)
|
|
218
|
+
self.reader.graph_search(request, prefilter, context)
|
|
216
219
|
}
|
|
217
220
|
|
|
218
221
|
#[instrument(name = "relation::suggest", skip_all)]
|
|
@@ -253,7 +256,7 @@ impl RelationSearcher {
|
|
|
253
256
|
}),
|
|
254
257
|
..Default::default()
|
|
255
258
|
};
|
|
256
|
-
let response = self.graph_search(&request, &PrefilterResult::All)?;
|
|
259
|
+
let response = self.graph_search(&request, &PrefilterResult::All, VectorQueryResults::default())?;
|
|
257
260
|
Ok(response.nodes)
|
|
258
261
|
}
|
|
259
262
|
|
|
@@ -30,7 +30,7 @@ use tantivy::{Index, IndexReader};
|
|
|
30
30
|
use uuid::Uuid;
|
|
31
31
|
|
|
32
32
|
use crate::graph_collector::{Selector, TopUniqueCollector};
|
|
33
|
-
use crate::graph_query_parser::{BoolGraphQuery, BoolNodeQuery, GraphQueryParser};
|
|
33
|
+
use crate::graph_query_parser::{BoolGraphQuery, BoolNodeQuery, GraphQueryParser, VectorQueryResults};
|
|
34
34
|
use crate::schema::{Schema, decode_node, decode_relation, encode_field_id};
|
|
35
35
|
use crate::top_unique_n::TopUniqueN;
|
|
36
36
|
use crate::{RelationConfig, io_maps};
|
|
@@ -99,6 +99,7 @@ impl RelationsReaderService {
|
|
|
99
99
|
&self,
|
|
100
100
|
request: &GraphSearchRequest,
|
|
101
101
|
prefilter: &PrefilterResult,
|
|
102
|
+
context: VectorQueryResults,
|
|
102
103
|
) -> anyhow::Result<GraphSearchResponse> {
|
|
103
104
|
// No query? Empty graph
|
|
104
105
|
let Some(query) = &request.query else {
|
|
@@ -110,21 +111,23 @@ impl RelationsReaderService {
|
|
|
110
111
|
|
|
111
112
|
let top_k = request.top_k as usize;
|
|
112
113
|
|
|
114
|
+
let parser = GraphQueryParser::new(&self.schema, context);
|
|
115
|
+
|
|
113
116
|
match request.kind() {
|
|
114
|
-
QueryKind::Path => self.paths_graph_search(query, prefilter, top_k),
|
|
115
|
-
QueryKind::Nodes => self.nodes_graph_search(query, prefilter, top_k),
|
|
116
|
-
QueryKind::Relations => self.relations_graph_search(query, prefilter, top_k),
|
|
117
|
+
QueryKind::Path => self.paths_graph_search(parser, query, prefilter, top_k),
|
|
118
|
+
QueryKind::Nodes => self.nodes_graph_search(parser, query, prefilter, top_k),
|
|
119
|
+
QueryKind::Relations => self.relations_graph_search(parser, query, prefilter, top_k),
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
fn paths_graph_search(
|
|
121
124
|
&self,
|
|
125
|
+
parser: GraphQueryParser,
|
|
122
126
|
query: &nidx_protos::graph_query::PathQuery,
|
|
123
127
|
prefilter: &PrefilterResult,
|
|
124
128
|
top_k: usize,
|
|
125
129
|
) -> anyhow::Result<GraphSearchResponse> {
|
|
126
130
|
let query = BoolGraphQuery::try_from(query)?;
|
|
127
|
-
let parser = GraphQueryParser::new(&self.schema);
|
|
128
131
|
let index_query = parser.parse_bool(query);
|
|
129
132
|
let index_query = self.apply_prefilter(index_query, prefilter);
|
|
130
133
|
|
|
@@ -135,8 +138,9 @@ impl RelationsReaderService {
|
|
|
135
138
|
let mut nodes = Vec::new();
|
|
136
139
|
let mut relations = Vec::new();
|
|
137
140
|
let mut graph = Vec::new();
|
|
141
|
+
let mut scores = Vec::new();
|
|
138
142
|
|
|
139
|
-
for (
|
|
143
|
+
for (score, doc_address) in matching_docs {
|
|
140
144
|
let doc = searcher.doc(doc_address)?;
|
|
141
145
|
|
|
142
146
|
let source = io_maps::source_to_relation_node(&self.schema, &doc);
|
|
@@ -157,25 +161,28 @@ impl RelationsReaderService {
|
|
|
157
161
|
metadata: io_maps::decode_metadata(&self.schema, &doc),
|
|
158
162
|
resource_field_id: io_maps::doc_to_resource_field_id(&self.schema, &doc),
|
|
159
163
|
facets: io_maps::doc_to_facets(&self.schema, &doc),
|
|
160
|
-
})
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
scores.push(score);
|
|
161
167
|
}
|
|
162
168
|
|
|
163
169
|
let response = nidx_protos::GraphSearchResponse {
|
|
164
170
|
nodes,
|
|
165
171
|
relations,
|
|
166
172
|
graph,
|
|
173
|
+
scores,
|
|
167
174
|
};
|
|
168
175
|
Ok(response)
|
|
169
176
|
}
|
|
170
177
|
|
|
171
178
|
fn nodes_graph_search(
|
|
172
179
|
&self,
|
|
180
|
+
parser: GraphQueryParser,
|
|
173
181
|
query: &nidx_protos::graph_query::PathQuery,
|
|
174
182
|
prefilter: &PrefilterResult,
|
|
175
183
|
top_k: usize,
|
|
176
184
|
) -> anyhow::Result<GraphSearchResponse> {
|
|
177
185
|
let query = BoolNodeQuery::try_from(query)?;
|
|
178
|
-
let parser = GraphQueryParser::new(&self.schema);
|
|
179
186
|
let (source_query, destination_query) = parser.parse_bool_node(query);
|
|
180
187
|
let source_query = self.apply_prefilter(source_query, prefilter);
|
|
181
188
|
let destination_query = self.apply_prefilter(destination_query, prefilter);
|
|
@@ -192,21 +199,21 @@ impl RelationsReaderService {
|
|
|
192
199
|
let destination_nodes = searcher.search(&destination_query, &collector)?;
|
|
193
200
|
unique_nodes.merge(destination_nodes);
|
|
194
201
|
|
|
195
|
-
let
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
.collect();
|
|
202
|
+
let mut scores = vec![];
|
|
203
|
+
let mut nodes = vec![];
|
|
204
|
+
for (encoded_node, score) in unique_nodes.into_sorted_vec() {
|
|
205
|
+
let (value, node_type, node_subtype) = decode_node(&encoded_node);
|
|
206
|
+
scores.push(score);
|
|
207
|
+
nodes.push(RelationNode {
|
|
208
|
+
value,
|
|
209
|
+
ntype: io_maps::u64_to_node_type(node_type),
|
|
210
|
+
subtype: node_subtype,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
207
213
|
|
|
208
214
|
let response = nidx_protos::GraphSearchResponse {
|
|
209
215
|
nodes,
|
|
216
|
+
scores,
|
|
210
217
|
..Default::default()
|
|
211
218
|
};
|
|
212
219
|
Ok(response)
|
|
@@ -214,12 +221,12 @@ impl RelationsReaderService {
|
|
|
214
221
|
|
|
215
222
|
fn relations_graph_search(
|
|
216
223
|
&self,
|
|
224
|
+
parser: GraphQueryParser,
|
|
217
225
|
query: &nidx_protos::graph_query::PathQuery,
|
|
218
226
|
prefilter: &PrefilterResult,
|
|
219
227
|
top_k: usize,
|
|
220
228
|
) -> anyhow::Result<GraphSearchResponse> {
|
|
221
229
|
let query = BoolGraphQuery::try_from(query)?;
|
|
222
|
-
let parser = GraphQueryParser::new(&self.schema);
|
|
223
230
|
let index_query = parser.parse_bool(query);
|
|
224
231
|
let index_query = self.apply_prefilter(index_query, prefilter);
|
|
225
232
|
|
|
@@ -228,20 +235,21 @@ impl RelationsReaderService {
|
|
|
228
235
|
let collector = TopUniqueCollector::new(Selector::Relations, top_k);
|
|
229
236
|
let top_relations = searcher.search(&index_query, &collector)?;
|
|
230
237
|
|
|
231
|
-
let
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
})
|
|
241
|
-
|
|
238
|
+
let mut scores = vec![];
|
|
239
|
+
let mut relations = vec![];
|
|
240
|
+
|
|
241
|
+
for (encoded_relation, score) in top_relations.into_sorted_vec() {
|
|
242
|
+
let (relation_type, relation_label) = decode_relation(&encoded_relation);
|
|
243
|
+
scores.push(score);
|
|
244
|
+
relations.push(nidx_protos::graph_search_response::Relation {
|
|
245
|
+
relation_type: io_maps::u64_to_relation_type::<i32>(relation_type),
|
|
246
|
+
label: relation_label,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
242
249
|
|
|
243
250
|
let response = nidx_protos::GraphSearchResponse {
|
|
244
251
|
relations,
|
|
252
|
+
scores,
|
|
245
253
|
..Default::default()
|
|
246
254
|
};
|
|
247
255
|
Ok(response)
|