nidx-binding 6.3.5.post299__tar.gz → 6.3.5.post305__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.3.5.post299 → nidx_binding-6.3.5.post305}/PKG-INFO +1 -1
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_protos/pyproject.toml +1 -1
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/graph_query_parser.rs +0 -2
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/io_maps.rs +13 -8
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/lib.rs +4 -4
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/reader.rs +3 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/tests/test_graph_search.rs +1 -1
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/pyproject.toml +1 -1
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/query_planner.rs +155 -11
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/shard_search.rs +40 -4
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_search_relations.rs +1 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-77a245aed9f6f8b9fc643efbd4b1e2e8e99bbba085e3e75a4f29321cd7b2a25c.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/Cargo.lock +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/README.md +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/migrations/20241007163501_initial.sql +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/migrations/20241211120039_merge_job_priority.sql +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/migrations/20241211121159_basic_indexes.sql +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/migrations/20241212151105_check_segment_records.sql +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/migrations/20250110145554_in_flight_messages.sql +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_binding/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_binding/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/fuzzy_query.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/query_io.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/reader.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/request_types.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/resource_indexer.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/schema.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/search_query.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/search_response.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/set_query.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/stop_words.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/README.md +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/ar.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/az.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/bn.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/ca.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/ch.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/da.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/de.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/el.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/en.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/es.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/eu.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/extract.py +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/fi.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/fr.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/he.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/hu.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/id.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/it.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/kk.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/ne.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/nl.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/no.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/pt.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/ro.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/ru.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/sl.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/sv.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/tg.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/tr.json +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/tests/reader.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_protos/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_protos/build.py +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_protos/build.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_protos/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_protos/src/nidx.proto +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/graph_collector.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/resource_indexer.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/schema.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/top_unique_n.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/tests/test_reader.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/tests/test_writer.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_tantivy/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_tantivy/src/index_reader.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_tantivy/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_tests/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_tests/src/graph.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_tests/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/prefilter.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/query_io.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/reader.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/request_types.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/resource_indexer.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/schema.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/src/search_query.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/tests/test_deletions.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/tests/test_flow.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/tests/test_search.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_text/tests/test_streaming.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_types/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_types/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_types/src/prefilter.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_types/src/query_language.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/config.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point/disk_hnsw.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point/node.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point/ops_hnsw.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point/params.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point/ram_hnsw.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point/tests.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point_provider/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_point_provider/reader.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_types/data_store.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_types/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_types/trie.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/data_types/trie_ram.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/formula/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/indexer.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/inverted_index/map.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/inverted_index.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/query_io.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/request_types.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/utils.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/src/vector_types/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/tests/test_basic_search.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_vector/tests/test_hidden.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/api/grpc.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/api/shards.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/api.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/control.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/errors.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/grpc_server.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/import_export.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/indexer.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/main.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metadata/deletion.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metadata/index.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metadata/index_request.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metadata/merge_job.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metadata/segment.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metadata/shard.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metadata.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/metrics.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/scheduler/audit_task.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/scheduler/log_merge.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/scheduler/merge_task.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/scheduler/metrics_task.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/scheduler/purge_tasks.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/scheduler/vector_merge.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/scheduler.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/grpc.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/index_cache.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/query_language.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/shard_selector.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/shard_suggest.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/streams.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher/sync.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/searcher.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/segment_store.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/settings.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/telemetry/duration_layer.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/telemetry/log_format.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/telemetry/middleware.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/telemetry.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/tool.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/utilization_tracker.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/src/worker.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/common/services.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_date_range_search.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_search_filtering.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_search_sorting.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_searcher_cluster.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_security_search.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_shards.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_shards_api.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_suggest.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_synced_searcher.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_vector_normalization.rs +0 -0
- {nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/tests/test_vectorsets.rs +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nidx_binding
|
3
|
-
Version: 6.3.5.
|
3
|
+
Version: 6.3.5.post305
|
4
4
|
Classifier: Programming Language :: Rust
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
@@ -4,7 +4,7 @@ build-backend = "pdm.backend"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "nidx_protos"
|
7
|
-
version = "6.3.5.
|
7
|
+
version = "6.3.5.post305"
|
8
8
|
license = { text = "AGPL" }
|
9
9
|
description = "Protobuf definitions for nucliadb/nidx"
|
10
10
|
authors = [ { name = "Nuclia", email = "nucliadb@nuclia.com" }]
|
{nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_relation/src/graph_query_parser.rs
RENAMED
@@ -221,8 +221,6 @@ impl<'a> GraphQueryParser<'a> {
|
|
221
221
|
}
|
222
222
|
|
223
223
|
pub fn parse(&self, query: GraphQuery) -> Box<dyn Query> {
|
224
|
-
// REVIEW: if at some point we only want to return what the query really asks (nodes,
|
225
|
-
// relations or paths), we may want to return the query and some kind of response builder
|
226
224
|
match query {
|
227
225
|
GraphQuery::NodeQuery(query) => self.parse_node_query(query),
|
228
226
|
GraphQuery::RelationQuery(query) => self.parse_relation_query(query),
|
@@ -108,19 +108,24 @@ pub fn doc_to_relation(schema: &Schema, doc: &TantivyDocument) -> ProtosRelation
|
|
108
108
|
}
|
109
109
|
}
|
110
110
|
|
111
|
-
pub fn
|
112
|
-
|
111
|
+
pub fn doc_to_resource_field_id(schema: &Schema, doc: &TantivyDocument) -> Option<String> {
|
112
|
+
doc.get_first(schema.resource_field_id).map(|v| {
|
113
113
|
let (rid, fid) = decode_field_id(v.as_bytes().unwrap());
|
114
114
|
format!("{}/{}", rid.simple(), fid)
|
115
|
-
})
|
116
|
-
|
117
|
-
|
115
|
+
})
|
116
|
+
}
|
117
|
+
|
118
|
+
pub fn doc_to_facets(schema: &Schema, doc: &TantivyDocument) -> Vec<String> {
|
119
|
+
doc.get_all(schema.facets)
|
118
120
|
.map(|f| f.as_facet().unwrap().to_path_string())
|
119
|
-
.collect()
|
121
|
+
.collect()
|
122
|
+
}
|
123
|
+
|
124
|
+
pub fn doc_to_index_relation(schema: &Schema, doc: &TantivyDocument) -> IndexRelation {
|
120
125
|
IndexRelation {
|
121
126
|
relation: Some(doc_to_relation(schema, doc)),
|
122
|
-
resource_field_id,
|
123
|
-
facets,
|
127
|
+
resource_field_id: doc_to_resource_field_id(schema, doc),
|
128
|
+
facets: doc_to_facets(schema, doc),
|
124
129
|
}
|
125
130
|
}
|
126
131
|
|
@@ -212,13 +212,13 @@ impl RelationSearcher {
|
|
212
212
|
self.reader.relation_search(request)
|
213
213
|
}
|
214
214
|
|
215
|
-
#[instrument(name = "relation::
|
215
|
+
#[instrument(name = "relation::graph_search", skip_all)]
|
216
216
|
pub fn graph_search(
|
217
217
|
&self,
|
218
218
|
request: &GraphSearchRequest,
|
219
|
-
prefilter: PrefilterResult,
|
219
|
+
prefilter: &PrefilterResult,
|
220
220
|
) -> anyhow::Result<GraphSearchResponse> {
|
221
|
-
self.reader.graph_search(request,
|
221
|
+
self.reader.graph_search(request, prefilter)
|
222
222
|
}
|
223
223
|
|
224
224
|
#[instrument(name = "relation::suggest", skip_all)]
|
@@ -259,7 +259,7 @@ impl RelationSearcher {
|
|
259
259
|
}),
|
260
260
|
..Default::default()
|
261
261
|
};
|
262
|
-
let response = self.graph_search(&request, PrefilterResult::All)?;
|
262
|
+
let response = self.graph_search(&request, &PrefilterResult::All)?;
|
263
263
|
Ok(response.nodes)
|
264
264
|
}
|
265
265
|
|
@@ -169,6 +169,8 @@ impl RelationsReaderService {
|
|
169
169
|
relation: relation_idx as u32,
|
170
170
|
destination: destination_idx as u32,
|
171
171
|
metadata: io_maps::decode_metadata(&self.schema, &doc),
|
172
|
+
resource_field_id: io_maps::doc_to_resource_field_id(&self.schema, &doc),
|
173
|
+
facets: io_maps::doc_to_facets(&self.schema, &doc),
|
172
174
|
})
|
173
175
|
}
|
174
176
|
|
@@ -289,6 +291,7 @@ impl RelationsReaderService {
|
|
289
291
|
})
|
290
292
|
}
|
291
293
|
|
294
|
+
// TODO: remove unused method
|
292
295
|
fn entities_subgraph_search(
|
293
296
|
&self,
|
294
297
|
request: &RelationSearchRequest,
|
@@ -13,7 +13,7 @@ classifiers = [
|
|
13
13
|
"Programming Language :: Python :: Implementation :: CPython",
|
14
14
|
"Programming Language :: Python :: Implementation :: PyPy",
|
15
15
|
]
|
16
|
-
version = "6.3.5.
|
16
|
+
version = "6.3.5.post305"
|
17
17
|
|
18
18
|
[project.urls]
|
19
19
|
Homepage = "https://nuclia.com"
|
@@ -20,7 +20,12 @@
|
|
20
20
|
|
21
21
|
use nidx_paragraph::ParagraphSearchRequest;
|
22
22
|
use nidx_protos::filter_expression::Expr;
|
23
|
-
use nidx_protos::{
|
23
|
+
use nidx_protos::graph_query::{self, PathQuery, path_query};
|
24
|
+
use nidx_protos::graph_search_request::QueryKind;
|
25
|
+
use nidx_protos::search_request::GraphSearch;
|
26
|
+
use nidx_protos::{
|
27
|
+
EntitiesSubgraphRequest, FilterExpression, FilterOperator, GraphQuery, GraphSearchRequest, SearchRequest,
|
28
|
+
};
|
24
29
|
use nidx_text::DocumentSearchRequest;
|
25
30
|
use nidx_text::prefilter::*;
|
26
31
|
use nidx_types::prefilter::PrefilterResult;
|
@@ -37,7 +42,7 @@ pub struct IndexQueries {
|
|
37
42
|
pub vectors_request: Option<VectorSearchRequest>,
|
38
43
|
pub paragraphs_request: Option<ParagraphSearchRequest>,
|
39
44
|
pub texts_request: Option<DocumentSearchRequest>,
|
40
|
-
pub relations_request: Option<
|
45
|
+
pub relations_request: Option<GraphSearchRequest>,
|
41
46
|
}
|
42
47
|
|
43
48
|
impl IndexQueries {
|
@@ -65,7 +70,7 @@ pub struct QueryPlan {
|
|
65
70
|
}
|
66
71
|
|
67
72
|
pub fn build_query_plan(search_request: SearchRequest) -> anyhow::Result<QueryPlan> {
|
68
|
-
let
|
73
|
+
let graph_request = compute_relations_request(&search_request)?;
|
69
74
|
let texts_request = compute_texts_request(&search_request);
|
70
75
|
let vectors_request = compute_vectors_request(&search_request)?;
|
71
76
|
let paragraphs_request = compute_paragraphs_request(&search_request)?;
|
@@ -79,7 +84,7 @@ pub fn build_query_plan(search_request: SearchRequest) -> anyhow::Result<QueryPl
|
|
79
84
|
vectors_request,
|
80
85
|
paragraphs_request,
|
81
86
|
texts_request,
|
82
|
-
relations_request,
|
87
|
+
relations_request: graph_request,
|
83
88
|
},
|
84
89
|
})
|
85
90
|
}
|
@@ -171,14 +176,153 @@ fn compute_vectors_request(search_request: &SearchRequest) -> anyhow::Result<Opt
|
|
171
176
|
}))
|
172
177
|
}
|
173
178
|
|
174
|
-
|
175
|
-
|
179
|
+
#[allow(deprecated)]
|
180
|
+
fn compute_relations_request(search_request: &SearchRequest) -> anyhow::Result<Option<GraphSearchRequest>> {
|
181
|
+
let graph_search = match (
|
182
|
+
search_request.relation_subgraph.as_ref(),
|
183
|
+
search_request.graph_search.as_ref(),
|
184
|
+
) {
|
185
|
+
(None, None) => return Ok(None),
|
186
|
+
(Some(_), Some(_)) => {
|
187
|
+
return Err(anyhow::anyhow!(
|
188
|
+
"Entities subgraph and graph search are mutually exclusive features"
|
189
|
+
));
|
190
|
+
}
|
191
|
+
(Some(bfs_request), None) => {
|
192
|
+
// Bw/c: we'll convert the entities subgraph request into a graph request
|
193
|
+
convert_entities_subgraph_into_graph_search(bfs_request)
|
194
|
+
}
|
195
|
+
(None, Some(graph_search)) => graph_search.clone(),
|
196
|
+
};
|
176
197
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
198
|
+
Ok(Some(GraphSearchRequest {
|
199
|
+
query: graph_search.query,
|
200
|
+
top_k: std::cmp::max(search_request.result_per_page as u32, 20),
|
201
|
+
kind: QueryKind::Path.into(),
|
202
|
+
// we don't need to populate filters nor shard as they won't be used in search. Prefilter
|
203
|
+
// will be done with request filters and shard have been already obtained
|
204
|
+
..Default::default()
|
205
|
+
}))
|
206
|
+
}
|
207
|
+
|
208
|
+
fn convert_entities_subgraph_into_graph_search(bfs_request: &EntitiesSubgraphRequest) -> GraphSearch {
|
209
|
+
if bfs_request.entry_points.is_empty() {
|
210
|
+
return GraphSearch { query: None };
|
211
|
+
}
|
212
|
+
|
213
|
+
// Entry points are source or target nodes we want to search for. We want any undirected
|
214
|
+
// path containing any entry point
|
215
|
+
let entry_points_queries: Vec<PathQuery> = bfs_request
|
216
|
+
.entry_points
|
217
|
+
.iter()
|
218
|
+
.map(|entry_point| PathQuery {
|
219
|
+
query: Some(path_query::Query::Path(graph_query::Path {
|
220
|
+
source: Some(graph_query::Node {
|
221
|
+
value: Some(entry_point.value.clone()),
|
222
|
+
node_type: Some(entry_point.ntype),
|
223
|
+
node_subtype: Some(entry_point.subtype.clone()),
|
224
|
+
..Default::default()
|
225
|
+
}),
|
226
|
+
undirected: true,
|
227
|
+
..Default::default()
|
228
|
+
})),
|
229
|
+
})
|
230
|
+
.collect();
|
231
|
+
|
232
|
+
// A query can specifiy nodes marked as deleted in the db (but not removed from the index).
|
233
|
+
// We want to exclude any path containing any of those nodes.
|
234
|
+
//
|
235
|
+
// The request groups values per subtype (to optimize request size) but, as we don't support
|
236
|
+
// OR at node value level, we'll split them.
|
237
|
+
let deleted_nodes_queries: Vec<PathQuery> = bfs_request
|
238
|
+
.deleted_entities
|
239
|
+
.iter()
|
240
|
+
.flat_map(|deleted_nodes| {
|
241
|
+
if deleted_nodes.node_values.is_empty() {
|
242
|
+
return None;
|
243
|
+
}
|
244
|
+
let subtype = &deleted_nodes.node_subtype;
|
245
|
+
|
246
|
+
let subqueries = deleted_nodes
|
247
|
+
.node_values
|
248
|
+
.iter()
|
249
|
+
.map(|deleted_entity_value| PathQuery {
|
250
|
+
query: Some(path_query::Query::Path(graph_query::Path {
|
251
|
+
source: Some(graph_query::Node {
|
252
|
+
value: Some(deleted_entity_value.clone()),
|
253
|
+
node_subtype: Some(subtype.clone()),
|
254
|
+
..Default::default()
|
255
|
+
}),
|
256
|
+
undirected: true,
|
257
|
+
..Default::default()
|
258
|
+
})),
|
259
|
+
})
|
260
|
+
.collect::<Vec<_>>();
|
261
|
+
Some(subqueries)
|
262
|
+
})
|
263
|
+
.flatten()
|
264
|
+
.collect();
|
265
|
+
|
266
|
+
// Subtypes can also be marked as deleted in the db (but kept in the index). We also
|
267
|
+
// want to exclude any triplet containg a node with such subtypes
|
268
|
+
let excluded_subtypes_queries: Vec<PathQuery> = bfs_request
|
269
|
+
.deleted_groups
|
270
|
+
.iter()
|
271
|
+
.map(|deleted_subtype| PathQuery {
|
272
|
+
query: Some(path_query::Query::Path(graph_query::Path {
|
273
|
+
source: Some(graph_query::Node {
|
274
|
+
node_subtype: Some(deleted_subtype.clone()),
|
275
|
+
..Default::default()
|
276
|
+
}),
|
277
|
+
undirected: true,
|
278
|
+
..Default::default()
|
279
|
+
})),
|
280
|
+
})
|
281
|
+
.collect::<Vec<_>>();
|
282
|
+
|
283
|
+
let mut subqueries = vec![];
|
284
|
+
if !entry_points_queries.is_empty() {
|
285
|
+
// match any entry point
|
286
|
+
subqueries.push(PathQuery {
|
287
|
+
query: Some(path_query::Query::BoolOr(graph_query::BoolQuery {
|
288
|
+
operands: entry_points_queries,
|
289
|
+
})),
|
290
|
+
});
|
291
|
+
}
|
292
|
+
|
293
|
+
if !deleted_nodes_queries.is_empty() {
|
294
|
+
// exclude deleted nodes
|
295
|
+
subqueries.push(PathQuery {
|
296
|
+
query: Some(path_query::Query::BoolNot(Box::new(PathQuery {
|
297
|
+
query: Some(path_query::Query::BoolOr(graph_query::BoolQuery {
|
298
|
+
operands: deleted_nodes_queries,
|
299
|
+
})),
|
300
|
+
}))),
|
301
|
+
});
|
302
|
+
}
|
303
|
+
|
304
|
+
if !excluded_subtypes_queries.is_empty() {
|
305
|
+
// exclude specific subtypes
|
306
|
+
subqueries.push(PathQuery {
|
307
|
+
query: Some(path_query::Query::BoolNot(Box::new(PathQuery {
|
308
|
+
query: Some(path_query::Query::BoolOr(graph_query::BoolQuery {
|
309
|
+
operands: excluded_subtypes_queries,
|
310
|
+
})),
|
311
|
+
}))),
|
312
|
+
});
|
313
|
+
}
|
314
|
+
|
315
|
+
let graph_query = GraphQuery {
|
316
|
+
path: Some(PathQuery {
|
317
|
+
query: Some(path_query::Query::BoolAnd(graph_query::BoolQuery {
|
318
|
+
operands: subqueries,
|
319
|
+
})),
|
320
|
+
}),
|
321
|
+
};
|
322
|
+
|
323
|
+
GraphSearch {
|
324
|
+
query: Some(graph_query),
|
325
|
+
}
|
182
326
|
}
|
183
327
|
|
184
328
|
pub fn filter_to_boolean_expression(filter: FilterExpression) -> anyhow::Result<BooleanExpression<String>> {
|
@@ -21,7 +21,10 @@
|
|
21
21
|
use std::sync::Arc;
|
22
22
|
|
23
23
|
use nidx_paragraph::ParagraphSearcher;
|
24
|
-
use nidx_protos::{
|
24
|
+
use nidx_protos::{
|
25
|
+
EntitiesSubgraphResponse, GraphSearchRequest, GraphSearchResponse, IndexRelation, Relation, RelationSearchResponse,
|
26
|
+
SearchRequest, SearchResponse,
|
27
|
+
};
|
25
28
|
use nidx_relation::RelationSearcher;
|
26
29
|
use nidx_text::{TextSearcher, prefilter::PreFilterRequest};
|
27
30
|
use nidx_types::prefilter::PrefilterResult;
|
@@ -131,7 +134,7 @@ fn blocking_search(
|
|
131
134
|
|
132
135
|
let relation_task = index_queries
|
133
136
|
.relations_request
|
134
|
-
.map(|request| move || relation_searcher.unwrap().
|
137
|
+
.map(|request| move || relation_searcher.unwrap().graph_search(&request, prefilter));
|
135
138
|
|
136
139
|
let vector_task = index_queries.vectors_request.map(|mut request| {
|
137
140
|
request.id = search_id.clone();
|
@@ -169,11 +172,44 @@ fn blocking_search(
|
|
169
172
|
}
|
170
173
|
});
|
171
174
|
|
175
|
+
let graph_response = rrelation.transpose()?;
|
176
|
+
|
177
|
+
// Bw/c: convert graph search into relation response
|
178
|
+
let relation_response = graph_response.clone().map(|graph_response| {
|
179
|
+
let relations = graph_response
|
180
|
+
.graph
|
181
|
+
.into_iter()
|
182
|
+
.map(|path| {
|
183
|
+
let source = graph_response.nodes[path.source as usize].clone();
|
184
|
+
let relation = graph_response.relations[path.relation as usize].clone();
|
185
|
+
let destination = graph_response.nodes[path.destination as usize].clone();
|
186
|
+
|
187
|
+
IndexRelation {
|
188
|
+
relation: Some(Relation {
|
189
|
+
source: Some(source),
|
190
|
+
to: Some(destination),
|
191
|
+
relation: relation.relation_type,
|
192
|
+
relation_label: relation.label,
|
193
|
+
metadata: path.metadata,
|
194
|
+
}),
|
195
|
+
resource_field_id: path.resource_field_id,
|
196
|
+
facets: path.facets,
|
197
|
+
}
|
198
|
+
})
|
199
|
+
.collect();
|
200
|
+
|
201
|
+
RelationSearchResponse {
|
202
|
+
subgraph: Some(EntitiesSubgraphResponse { relations }),
|
203
|
+
..Default::default()
|
204
|
+
}
|
205
|
+
});
|
206
|
+
|
172
207
|
Ok(SearchResponse {
|
173
208
|
document: rtext.transpose()?,
|
174
209
|
paragraph: rparagraph.transpose()?,
|
175
210
|
vector: rvector.transpose()?,
|
176
|
-
relation:
|
211
|
+
relation: relation_response,
|
212
|
+
graph: graph_response,
|
177
213
|
})
|
178
214
|
}
|
179
215
|
|
@@ -223,7 +259,7 @@ pub async fn graph_search(
|
|
223
259
|
let results = tokio::task::spawn_blocking(move || {
|
224
260
|
current.in_scope(|| {
|
225
261
|
let searcher: &RelationSearcher = relation_searcher.as_ref().into();
|
226
|
-
searcher.graph_search(&graph_request, prefilter)
|
262
|
+
searcher.graph_search(&graph_request, &prefilter)
|
227
263
|
})
|
228
264
|
})
|
229
265
|
.await??;
|
@@ -1115,6 +1115,7 @@ async fn relation_search(
|
|
1115
1115
|
fixture: &mut NidxFixture,
|
1116
1116
|
request: RelationSearchRequest,
|
1117
1117
|
) -> anyhow::Result<RelationSearchResponse> {
|
1118
|
+
#[allow(deprecated)]
|
1118
1119
|
let request = SearchRequest {
|
1119
1120
|
shard: request.shard_id,
|
1120
1121
|
vectorset: "english".to_string(),
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/migrations/20241007163501_initial.sql
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/request_types.rs
RENAMED
File without changes
|
{nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/resource_indexer.rs
RENAMED
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/search_query.rs
RENAMED
File without changes
|
{nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/src/search_response.rs
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post299 → nidx_binding-6.3.5.post305}/nidx_paragraph/stop_words/README.md
RENAMED
File without changes
|
File without changes
|