nidx-binding 6.9.6.post677__tar.gz → 6.9.7.post680__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/PKG-INFO +1 -1
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/pyproject.toml +1 -1
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/pyproject.toml +1 -1
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/grpc.rs +27 -17
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_searcher_cluster.rs +69 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.config/nextest.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/.sqlx/query-fd97b359c7a7cdc573b2112efbafb9956ae71d8f875c38140cba1c04b7084b47.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/Cargo.lock +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/README.md +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/migrations/20241007163501_initial.sql +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/migrations/20241211120039_merge_job_priority.sql +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/migrations/20241211121159_basic_indexes.sql +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/migrations/20241212151105_check_segment_records.sql +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/migrations/20250110145554_in_flight_messages.sql +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_binding/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_binding/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/fuzzy_query.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/query_io.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/query_parser/stop_words.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/query_parser/tokenizer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/query_parser.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/reader.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/request_types.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/schema.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/search_query.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/search_response.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/set_query.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/README.md +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/ar.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/az.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/bn.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/ca.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/ch.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/da.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/de.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/el.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/en.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/es.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/eu.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/extract.py +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/fi.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/fr.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/he.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/hu.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/id.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/it.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/kk.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/ne.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/nl.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/no.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/pt.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/ro.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/ru.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/sl.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/sv.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/tg.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/tr.json +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/tests/reader.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/build.py +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/build.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/nidx.proto +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/nodereader.proto +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/noderesources.proto +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/nodewriter.proto +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_protos/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/graph_collector.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/graph_query_parser.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/io_maps.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/reader.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/schema.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/top_unique_n.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/tests/test_graph_search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/tests/test_writer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_tantivy/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_tantivy/src/index_reader.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_tantivy/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_tantivy/src/utils.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_tests/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_tests/src/graph.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_tests/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/prefilter.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/query_io.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/reader.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/request_types.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/resource_indexer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/schema.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/src/search_query.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/tests/test_deletions.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/tests/test_flow.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/tests/test_search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_text/tests/test_streaming.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_types/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_types/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_types/src/prefilter.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_types/src/query_language.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/Cargo.toml +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/config.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v1/node.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v1/store.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v1/trie.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v1.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v2/quant_vector_store.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store/v2.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_store.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/data_types.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/formula.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw/build.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw/disk/v1.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw/disk/v2.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw/disk.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw/params.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw/ram_hnsw.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw/search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/hnsw.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/indexer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/inverted_index/map.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/inverted_index.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/multivector.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/query_io.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/request_types.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/searcher.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/segment/tests.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/segment.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/utils.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/vector_types/mod.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/src/vector_types/rabitq.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/tests/test_basic_search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/tests/test_hidden.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_vector/tests/test_maxsim.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/api/grpc.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/api/shards.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/api.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/control.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/errors.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/grpc_server.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/import_export.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/indexer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/lib.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/main.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metadata/deletion.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metadata/index.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metadata/index_request.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metadata/merge_job.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metadata/segment.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metadata/shard.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metadata.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/metrics.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/scheduler/audit_task.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/scheduler/log_merge.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/scheduler/merge_task.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/scheduler/metrics_task.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/scheduler/purge_tasks.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/scheduler/vector_merge.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/scheduler.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/index_cache.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/query_language.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/query_planner.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/shard_search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/shard_selector.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/shard_suggest.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/streams.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher/sync.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/searcher.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/segment_store.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/settings.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/telemetry/duration_layer.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/telemetry/log_format.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/telemetry/middleware.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/telemetry.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/tool.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/utilization_tracker.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/src/worker.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/common/mod.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/common/services.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_date_range_search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_search_filtering.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_search_relations.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_search_sorting.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_security_search.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_shards.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_shards_api.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_suggest.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_synced_searcher.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_vector_normalization.rs +0 -0
- {nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/tests/test_vectorsets.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nidx_binding
|
|
3
|
-
Version: 6.9.
|
|
3
|
+
Version: 6.9.7.post680
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -10,7 +10,7 @@ build-backend = "pdm.backend"
|
|
|
10
10
|
|
|
11
11
|
[project]
|
|
12
12
|
name = "nidx_protos"
|
|
13
|
-
version = "6.9.
|
|
13
|
+
version = "6.9.7.post680"
|
|
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" }]
|
|
@@ -13,7 +13,7 @@ classifiers = [
|
|
|
13
13
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
14
14
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
15
15
|
]
|
|
16
|
-
version = "6.9.
|
|
16
|
+
version = "6.9.7.post680"
|
|
17
17
|
|
|
18
18
|
[project.urls]
|
|
19
19
|
Homepage = "https://nuclia.com"
|
|
@@ -39,6 +39,9 @@ use super::streams;
|
|
|
39
39
|
use super::{index_cache::IndexCache, shard_search, shard_suggest};
|
|
40
40
|
use tracing::*;
|
|
41
41
|
|
|
42
|
+
/// When this header is set, we only try to serve the request from the local node
|
|
43
|
+
const HEADER_LOCAL_ONLY: &str = "nidx-local-only";
|
|
44
|
+
|
|
42
45
|
#[derive(Clone)]
|
|
43
46
|
struct TelemetryInterceptor;
|
|
44
47
|
#[cfg(feature = "telemetry")]
|
|
@@ -101,7 +104,12 @@ macro_rules! shard_request {
|
|
|
101
104
|
$(, STREAM => $stream_type:ty)?
|
|
102
105
|
} => {{
|
|
103
106
|
let mut errors = Vec::new();
|
|
104
|
-
let
|
|
107
|
+
let local_only = $request.metadata().contains_key(HEADER_LOCAL_ONLY);
|
|
108
|
+
let nodes = if local_only {
|
|
109
|
+
vec![SearcherNode::This]
|
|
110
|
+
} else {
|
|
111
|
+
$self.shard_selector.nodes_for_shard(&$shard_id)
|
|
112
|
+
};
|
|
105
113
|
for node in &nodes {
|
|
106
114
|
debug!(?node, ?$shard_id, concat!("Attempting ", $name));
|
|
107
115
|
let result = match node {
|
|
@@ -113,7 +121,9 @@ macro_rules! shard_request {
|
|
|
113
121
|
SearcherNode::Remote(hostname) => {
|
|
114
122
|
match $self.get_client(hostname).await {
|
|
115
123
|
Ok(mut client) => {
|
|
116
|
-
|
|
124
|
+
let mut request = Request::new($request.get_ref().clone());
|
|
125
|
+
request.metadata_mut().insert(HEADER_LOCAL_ONLY, "1".parse().unwrap());
|
|
126
|
+
client.$remote_method(request)
|
|
117
127
|
.await
|
|
118
128
|
.map_err(|e| match e.code() {
|
|
119
129
|
tonic::Code::NotFound => NidxError::NotFound,
|
|
@@ -146,48 +156,48 @@ macro_rules! shard_request {
|
|
|
146
156
|
#[tonic::async_trait]
|
|
147
157
|
impl NidxSearcher for SearchServer {
|
|
148
158
|
async fn search(&self, request: Request<SearchRequest>) -> Result<Response<SearchResponse>> {
|
|
149
|
-
let
|
|
150
|
-
let shard_id = uuid::Uuid::parse_str(&
|
|
159
|
+
let message = request.get_ref();
|
|
160
|
+
let shard_id = uuid::Uuid::parse_str(&message.shard).map_err(NidxError::from)?;
|
|
151
161
|
shard_request! {
|
|
152
162
|
"search",
|
|
153
163
|
self,
|
|
154
164
|
request,
|
|
155
165
|
shard_id,
|
|
156
|
-
LOCAL => shard_search::search(Arc::clone(&self.index_cache),
|
|
166
|
+
LOCAL => shard_search::search(Arc::clone(&self.index_cache), message.clone()).await,
|
|
157
167
|
REMOTE => search
|
|
158
168
|
}
|
|
159
169
|
}
|
|
160
170
|
|
|
161
171
|
async fn suggest(&self, request: Request<SuggestRequest>) -> Result<Response<SuggestResponse>> {
|
|
162
|
-
let
|
|
163
|
-
let shard_id = uuid::Uuid::parse_str(&
|
|
172
|
+
let message = request.get_ref();
|
|
173
|
+
let shard_id = uuid::Uuid::parse_str(&message.shard).map_err(NidxError::from)?;
|
|
164
174
|
shard_request! {
|
|
165
175
|
"suggest",
|
|
166
176
|
self,
|
|
167
177
|
request,
|
|
168
178
|
shard_id,
|
|
169
|
-
LOCAL => shard_suggest::suggest(Arc::clone(&self.index_cache),
|
|
179
|
+
LOCAL => shard_suggest::suggest(Arc::clone(&self.index_cache), message.clone()).await,
|
|
170
180
|
REMOTE => suggest
|
|
171
181
|
}
|
|
172
182
|
}
|
|
173
183
|
|
|
174
184
|
async fn graph_search(&self, request: Request<GraphSearchRequest>) -> Result<Response<GraphSearchResponse>> {
|
|
175
|
-
let
|
|
176
|
-
let shard_id = uuid::Uuid::parse_str(&
|
|
185
|
+
let message = request.get_ref();
|
|
186
|
+
let shard_id = uuid::Uuid::parse_str(&message.shard).map_err(NidxError::from)?;
|
|
177
187
|
shard_request! {
|
|
178
188
|
"graph_search",
|
|
179
189
|
self,
|
|
180
190
|
request,
|
|
181
191
|
shard_id,
|
|
182
|
-
LOCAL => shard_search::graph_search(Arc::clone(&self.index_cache),
|
|
192
|
+
LOCAL => shard_search::graph_search(Arc::clone(&self.index_cache), message.clone()).await,
|
|
183
193
|
REMOTE => graph_search
|
|
184
194
|
}
|
|
185
195
|
}
|
|
186
196
|
|
|
187
197
|
type ParagraphsStream = Pin<Box<dyn Stream<Item = Result<ParagraphItem, Status>> + Send>>;
|
|
188
198
|
async fn paragraphs(&self, request: Request<StreamRequest>) -> Result<Response<Self::ParagraphsStream>> {
|
|
189
|
-
let
|
|
190
|
-
let Some(shard) = &
|
|
199
|
+
let message = request.get_ref();
|
|
200
|
+
let Some(shard) = &message.shard_id else {
|
|
191
201
|
return Err(NidxError::invalid("Uuid is required").into());
|
|
192
202
|
};
|
|
193
203
|
let shard_id = uuid::Uuid::parse_str(&shard.id).map_err(NidxError::from)?;
|
|
@@ -196,7 +206,7 @@ impl NidxSearcher for SearchServer {
|
|
|
196
206
|
self,
|
|
197
207
|
request,
|
|
198
208
|
shard_id,
|
|
199
|
-
LOCAL => streams::paragraph_iterator(Arc::clone(&self.index_cache),
|
|
209
|
+
LOCAL => streams::paragraph_iterator(Arc::clone(&self.index_cache), message.clone()).await,
|
|
200
210
|
REMOTE => paragraphs,
|
|
201
211
|
STREAM => Self::ParagraphsStream
|
|
202
212
|
}
|
|
@@ -204,8 +214,8 @@ impl NidxSearcher for SearchServer {
|
|
|
204
214
|
|
|
205
215
|
type DocumentsStream = Pin<Box<dyn Stream<Item = Result<DocumentItem, Status>> + Send>>;
|
|
206
216
|
async fn documents(&self, request: Request<StreamRequest>) -> Result<Response<Self::DocumentsStream>> {
|
|
207
|
-
let
|
|
208
|
-
let Some(shard) = &
|
|
217
|
+
let message = request.get_ref();
|
|
218
|
+
let Some(shard) = &message.shard_id else {
|
|
209
219
|
return Err(NidxError::invalid("Uuid is required").into());
|
|
210
220
|
};
|
|
211
221
|
let shard_id = uuid::Uuid::parse_str(&shard.id).map_err(NidxError::from)?;
|
|
@@ -214,7 +224,7 @@ impl NidxSearcher for SearchServer {
|
|
|
214
224
|
self,
|
|
215
225
|
request,
|
|
216
226
|
shard_id,
|
|
217
|
-
LOCAL => streams::document_iterator(Arc::clone(&self.index_cache),
|
|
227
|
+
LOCAL => streams::document_iterator(Arc::clone(&self.index_cache), message.clone()).await,
|
|
218
228
|
REMOTE => documents,
|
|
219
229
|
STREAM => Self::DocumentsStream
|
|
220
230
|
}
|
|
@@ -34,6 +34,7 @@ use std::{sync::Arc, time::Duration};
|
|
|
34
34
|
use tempfile::tempdir;
|
|
35
35
|
use tokio_util::sync::CancellationToken;
|
|
36
36
|
use tonic::Request;
|
|
37
|
+
use uuid::Uuid;
|
|
37
38
|
|
|
38
39
|
struct ManualListNodes(Arc<Mutex<Vec<String>>>, usize);
|
|
39
40
|
impl ListNodes for ManualListNodes {
|
|
@@ -311,3 +312,71 @@ async fn test_search_cluster_shard_distribution(pool: PgPool) -> anyhow::Result<
|
|
|
311
312
|
|
|
312
313
|
Ok(())
|
|
313
314
|
}
|
|
315
|
+
|
|
316
|
+
#[sqlx::test]
|
|
317
|
+
async fn test_search_cluster_shards_not_accessible(pool: PgPool) -> anyhow::Result<()> {
|
|
318
|
+
// Request a shard that does not exist, we should get a NotFound error
|
|
319
|
+
// This test makes sure we don't get the searchers stuck in a loop asking each other
|
|
320
|
+
// for the shard.
|
|
321
|
+
let fixture = NidxFixture::new(pool).await?;
|
|
322
|
+
|
|
323
|
+
// Create a cluster with 3 nodes and 2 replicas for each shard
|
|
324
|
+
let nodes = Arc::new(Mutex::new(Vec::new()));
|
|
325
|
+
let mut searchers = Vec::new();
|
|
326
|
+
for i in 0..3 {
|
|
327
|
+
let searcher_server = GrpcServer::new("localhost:0").await?;
|
|
328
|
+
let searcher_port = searcher_server.port()?;
|
|
329
|
+
nodes.lock().unwrap().push(format!("localhost:{searcher_port}"));
|
|
330
|
+
let list_nodes = ManualListNodes(nodes.clone(), i);
|
|
331
|
+
let work_dir = tempdir()?;
|
|
332
|
+
let searcher = SyncedSearcher::new(fixture.settings.metadata.clone(), work_dir.path());
|
|
333
|
+
let arc_list_nodes = Arc::new(list_nodes);
|
|
334
|
+
let searcher_api = SearchServer::new(searcher.index_cache(), ShardSelector::new(arc_list_nodes.clone(), 2));
|
|
335
|
+
searchers.push(format!("localhost:{searcher_port}"));
|
|
336
|
+
let settings_copy = fixture.settings.clone();
|
|
337
|
+
let shutdown = CancellationToken::new();
|
|
338
|
+
tokio::task::spawn(searcher_server.serve(searcher_api.into_router(), shutdown.clone()));
|
|
339
|
+
tokio::task::spawn(async move {
|
|
340
|
+
searcher
|
|
341
|
+
.run(
|
|
342
|
+
settings_copy.storage.as_ref().unwrap().object_store.clone(),
|
|
343
|
+
settings_copy.searcher.clone().unwrap_or_default(),
|
|
344
|
+
shutdown.clone(),
|
|
345
|
+
ShardSelector::new(arc_list_nodes, 2),
|
|
346
|
+
None,
|
|
347
|
+
None,
|
|
348
|
+
)
|
|
349
|
+
.await
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
tokio::time::sleep(Duration::from_secs(1)).await;
|
|
353
|
+
|
|
354
|
+
// Same behaviour from all nodes
|
|
355
|
+
let fake_uuid = Uuid::new_v4();
|
|
356
|
+
for searcher in &searchers {
|
|
357
|
+
let mut request = Request::new(SearchRequest {
|
|
358
|
+
shard: fake_uuid.to_string(),
|
|
359
|
+
result_per_page: 20,
|
|
360
|
+
body: "Hola".into(),
|
|
361
|
+
paragraph: true,
|
|
362
|
+
..Default::default()
|
|
363
|
+
});
|
|
364
|
+
request.set_timeout(Duration::from_secs(1));
|
|
365
|
+
|
|
366
|
+
let response = NidxSearcherClient::connect(format!("http://{searcher}"))
|
|
367
|
+
.await?
|
|
368
|
+
.search(request)
|
|
369
|
+
.await;
|
|
370
|
+
|
|
371
|
+
let Err(err) = response else {
|
|
372
|
+
panic!("Expected error response")
|
|
373
|
+
};
|
|
374
|
+
assert_eq!(
|
|
375
|
+
err.code(),
|
|
376
|
+
tonic::Code::NotFound,
|
|
377
|
+
"Expected shard NotFound. Cancelled error means timeout which means something went wrong"
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
Ok(())
|
|
382
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/migrations/20241007163501_initial.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/query_parser.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/request_types.rs
RENAMED
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/resource_indexer.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/search_query.rs
RENAMED
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/src/search_response.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/stop_words/extract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_paragraph/tests/common/mod.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/graph_collector.rs
RENAMED
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/graph_query_parser.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/src/resource_indexer.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/tests/test_graph_search.rs
RENAMED
|
File without changes
|
{nidx_binding-6.9.6.post677 → nidx_binding-6.9.7.post680}/nidx_relation/tests/test_writer.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|