nidx-binding 6.8.1.post507__tar.gz → 6.8.1.post515__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.
Files changed (261) hide show
  1. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/Cargo.lock +1 -0
  2. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/Cargo.toml +1 -1
  3. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/PKG-INFO +1 -1
  4. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/pyproject.toml +1 -1
  5. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v1/store.rs +8 -8
  6. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v1.rs +3 -3
  7. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v2/paragraph_store.rs +2 -2
  8. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v2/vector_store.rs +2 -2
  9. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v2.rs +2 -2
  10. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store.rs +3 -3
  11. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/hnsw/disk_hnsw.rs +65 -41
  12. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/hnsw/ops_hnsw.rs +32 -26
  13. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/hnsw/ram_hnsw.rs +14 -12
  14. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/hnsw.rs +0 -18
  15. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/lib.rs +1 -0
  16. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/segment.rs +21 -21
  17. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/pyproject.toml +1 -1
  18. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/settings.rs +24 -0
  19. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.config/nextest.toml +0 -0
  20. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
  21. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
  22. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
  23. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
  24. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
  25. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
  26. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
  27. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
  28. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
  29. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
  30. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
  31. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
  32. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
  33. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
  34. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
  35. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
  36. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
  37. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
  38. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
  39. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
  40. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
  41. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
  42. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
  43. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
  44. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
  45. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
  46. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
  47. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
  48. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
  49. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
  50. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
  51. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
  52. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
  53. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
  54. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
  55. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
  56. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
  57. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
  58. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
  59. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
  60. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
  61. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
  62. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
  63. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
  64. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
  65. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
  66. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
  67. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
  68. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
  69. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
  70. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
  71. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
  72. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
  73. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
  74. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
  75. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
  76. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
  77. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
  78. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
  79. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/README.md +0 -0
  80. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/migrations/20241007163501_initial.sql +0 -0
  81. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/migrations/20241211120039_merge_job_priority.sql +0 -0
  82. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/migrations/20241211121159_basic_indexes.sql +0 -0
  83. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/migrations/20241212151105_check_segment_records.sql +0 -0
  84. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/migrations/20250110145554_in_flight_messages.sql +0 -0
  85. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_binding/Cargo.toml +0 -0
  86. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_binding/src/lib.rs +0 -0
  87. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/Cargo.toml +0 -0
  88. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/fuzzy_query.rs +0 -0
  89. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/lib.rs +0 -0
  90. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/query_io.rs +0 -0
  91. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -0
  92. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -0
  93. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/query_parser/stop_words.rs +0 -0
  94. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/query_parser/tokenizer.rs +0 -0
  95. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/query_parser.rs +0 -0
  96. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/reader.rs +0 -0
  97. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/request_types.rs +0 -0
  98. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/resource_indexer.rs +0 -0
  99. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/schema.rs +0 -0
  100. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/search_query.rs +0 -0
  101. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/search_response.rs +0 -0
  102. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/src/set_query.rs +0 -0
  103. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/README.md +0 -0
  104. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/ar.json +0 -0
  105. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/az.json +0 -0
  106. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/bn.json +0 -0
  107. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/ca.json +0 -0
  108. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/ch.json +0 -0
  109. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/da.json +0 -0
  110. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/de.json +0 -0
  111. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/el.json +0 -0
  112. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/en.json +0 -0
  113. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/es.json +0 -0
  114. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/eu.json +0 -0
  115. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/extract.py +0 -0
  116. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/fi.json +0 -0
  117. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/fr.json +0 -0
  118. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/he.json +0 -0
  119. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/hu.json +0 -0
  120. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/id.json +0 -0
  121. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/it.json +0 -0
  122. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/kk.json +0 -0
  123. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/ne.json +0 -0
  124. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/nl.json +0 -0
  125. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/no.json +0 -0
  126. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/pt.json +0 -0
  127. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/ro.json +0 -0
  128. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/ru.json +0 -0
  129. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/sl.json +0 -0
  130. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/sv.json +0 -0
  131. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/tg.json +0 -0
  132. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/stop_words/tr.json +0 -0
  133. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/tests/common/mod.rs +0 -0
  134. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_paragraph/tests/reader.rs +0 -0
  135. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/Cargo.toml +0 -0
  136. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/build.py +0 -0
  137. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/build.rs +0 -0
  138. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/nidx.proto +0 -0
  139. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/nodereader.proto +0 -0
  140. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/noderesources.proto +0 -0
  141. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/nodewriter.proto +0 -0
  142. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_protos/src/lib.rs +0 -0
  143. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/Cargo.toml +0 -0
  144. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/graph_collector.rs +0 -0
  145. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/graph_query_parser.rs +0 -0
  146. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/io_maps.rs +0 -0
  147. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/lib.rs +0 -0
  148. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/reader.rs +0 -0
  149. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/resource_indexer.rs +0 -0
  150. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/schema.rs +0 -0
  151. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/src/top_unique_n.rs +0 -0
  152. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/tests/common/mod.rs +0 -0
  153. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
  154. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/tests/test_graph_search.rs +0 -0
  155. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_relation/tests/test_writer.rs +0 -0
  156. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_tantivy/Cargo.toml +0 -0
  157. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_tantivy/src/index_reader.rs +0 -0
  158. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_tantivy/src/lib.rs +0 -0
  159. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_tantivy/src/utils.rs +0 -0
  160. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_tests/Cargo.toml +0 -0
  161. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_tests/src/graph.rs +0 -0
  162. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_tests/src/lib.rs +0 -0
  163. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/Cargo.toml +0 -0
  164. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/lib.rs +0 -0
  165. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/prefilter.rs +0 -0
  166. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/query_io.rs +0 -0
  167. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/reader.rs +0 -0
  168. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/request_types.rs +0 -0
  169. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/resource_indexer.rs +0 -0
  170. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/schema.rs +0 -0
  171. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/src/search_query.rs +0 -0
  172. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/tests/common/mod.rs +0 -0
  173. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/tests/test_deletions.rs +0 -0
  174. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/tests/test_flow.rs +0 -0
  175. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/tests/test_search.rs +0 -0
  176. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_text/tests/test_streaming.rs +0 -0
  177. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_types/Cargo.toml +0 -0
  178. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_types/src/lib.rs +0 -0
  179. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_types/src/prefilter.rs +0 -0
  180. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_types/src/query_language.rs +0 -0
  181. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/Cargo.toml +0 -0
  182. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/config.rs +0 -0
  183. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v1/node.rs +0 -0
  184. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v1/trie.rs +0 -0
  185. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
  186. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/data_types.rs +0 -0
  187. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/formula.rs +0 -0
  188. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/hnsw/params.rs +0 -0
  189. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/indexer.rs +0 -0
  190. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
  191. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/inverted_index/map.rs +0 -0
  192. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/inverted_index.rs +0 -0
  193. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/multivector.rs +0 -0
  194. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/query_io.rs +0 -0
  195. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/request_types.rs +0 -0
  196. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/searcher.rs +0 -0
  197. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/segment/tests.rs +0 -0
  198. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/utils.rs +0 -0
  199. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
  200. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/src/vector_types/mod.rs +0 -0
  201. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/tests/common/mod.rs +0 -0
  202. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/tests/test_basic_search.rs +0 -0
  203. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/tests/test_hidden.rs +0 -0
  204. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/nidx_vector/tests/test_maxsim.rs +0 -0
  205. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/api/grpc.rs +0 -0
  206. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/api/shards.rs +0 -0
  207. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/api.rs +0 -0
  208. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/control.rs +0 -0
  209. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/errors.rs +0 -0
  210. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/grpc_server.rs +0 -0
  211. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/import_export.rs +0 -0
  212. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/indexer.rs +0 -0
  213. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/lib.rs +0 -0
  214. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/main.rs +0 -0
  215. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metadata/deletion.rs +0 -0
  216. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metadata/index.rs +0 -0
  217. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metadata/index_request.rs +0 -0
  218. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metadata/merge_job.rs +0 -0
  219. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metadata/segment.rs +0 -0
  220. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metadata/shard.rs +0 -0
  221. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metadata.rs +0 -0
  222. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/metrics.rs +0 -0
  223. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/scheduler/audit_task.rs +0 -0
  224. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/scheduler/log_merge.rs +0 -0
  225. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/scheduler/merge_task.rs +0 -0
  226. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/scheduler/metrics_task.rs +0 -0
  227. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/scheduler/purge_tasks.rs +0 -0
  228. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/scheduler/vector_merge.rs +0 -0
  229. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/scheduler.rs +0 -0
  230. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/grpc.rs +0 -0
  231. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/index_cache.rs +0 -0
  232. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/query_language.rs +0 -0
  233. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/query_planner.rs +0 -0
  234. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/shard_search.rs +0 -0
  235. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/shard_selector.rs +0 -0
  236. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/shard_suggest.rs +0 -0
  237. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/streams.rs +0 -0
  238. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher/sync.rs +0 -0
  239. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/searcher.rs +0 -0
  240. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/segment_store.rs +0 -0
  241. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/telemetry/duration_layer.rs +0 -0
  242. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/telemetry/log_format.rs +0 -0
  243. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/telemetry/middleware.rs +0 -0
  244. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/telemetry.rs +0 -0
  245. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/tool.rs +0 -0
  246. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/utilization_tracker.rs +0 -0
  247. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/src/worker.rs +0 -0
  248. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/common/mod.rs +0 -0
  249. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/common/services.rs +0 -0
  250. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_date_range_search.rs +0 -0
  251. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_search_filtering.rs +0 -0
  252. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_search_relations.rs +0 -0
  253. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_search_sorting.rs +0 -0
  254. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_searcher_cluster.rs +0 -0
  255. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_security_search.rs +0 -0
  256. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_shards.rs +0 -0
  257. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_shards_api.rs +0 -0
  258. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_suggest.rs +0 -0
  259. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_synced_searcher.rs +0 -0
  260. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_vector_normalization.rs +0 -0
  261. {nidx_binding-6.8.1.post507 → nidx_binding-6.8.1.post515}/tests/test_vectorsets.rs +0 -0
@@ -2411,6 +2411,7 @@ dependencies = [
2411
2411
  "bytes",
2412
2412
  "chrono",
2413
2413
  "futures",
2414
+ "httparse",
2414
2415
  "humantime",
2415
2416
  "hyper",
2416
2417
  "itertools 0.13.0",
@@ -17,7 +17,7 @@ async-nats = "0.42.0"
17
17
  base64 = "0.22.1"
18
18
  futures = "0.3.31"
19
19
  nidx_vector = { version = "0.1.0", path = "nidx_vector" }
20
- object_store = { version = "0.11.0", features = ["gcp", "aws"] }
20
+ object_store = { version = "0.11.0", features = ["gcp", "aws", "azure"] }
21
21
  serde = "1.0.210"
22
22
  serde_json = "1.0.132"
23
23
  sqlx = { version = "0.8.2", features = ["postgres", "uuid", "runtime-tokio", "time", "tls-rustls"] }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nidx_binding
3
- Version: 6.8.1.post507
3
+ Version: 6.8.1.post515
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.8.1.post507"
13
+ version = "6.8.1.post515"
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" }]
@@ -67,7 +67,7 @@ impl<T: AsRef<[u8]>> IntoBuffer for T {
67
67
  // O(1)
68
68
  // Returns how many elements are in x, alive or deleted.
69
69
  pub fn stored_elements(x: &[u8]) -> usize {
70
- usize_from_slice_le(&x[..HEADER_LEN])
70
+ usize_from_slice_le(&x[..USIZE_LEN])
71
71
  }
72
72
 
73
73
  // O(1)
@@ -230,7 +230,7 @@ mod tests {
230
230
 
231
231
  let buf_map = unsafe { memmap2::Mmap::map(&buf).unwrap() };
232
232
  let no_values = stored_elements(&buf_map);
233
- assert_eq!(no_values, expected.len());
233
+ assert_eq!(no_values as usize, expected.len());
234
234
  for (id, expected_value) in expected.iter().enumerate() {
235
235
  let actual_value = get_value(&buf_map, id);
236
236
  assert_eq!(actual_value.key(), expected_value.key);
@@ -275,7 +275,7 @@ mod tests {
275
275
  .map(|s| s.key().parse().unwrap())
276
276
  .collect();
277
277
 
278
- assert_eq!(number_of_elements, values.len());
278
+ assert_eq!(number_of_elements as usize, values.len());
279
279
  assert_eq!(values.len(), expected.len());
280
280
  assert!(values.iter().all(|i| expected.contains(i)));
281
281
  }
@@ -317,7 +317,7 @@ mod tests {
317
317
  .map(|s| s.key().parse().unwrap())
318
318
  .collect();
319
319
 
320
- assert_eq!(number_of_elements, values.len());
320
+ assert_eq!(number_of_elements as usize, values.len());
321
321
  assert_eq!(values.len(), expected.len());
322
322
  assert!(values.iter().all(|i| expected.contains(i)));
323
323
  }
@@ -358,7 +358,7 @@ mod tests {
358
358
  .map(|s| s.key().parse().unwrap())
359
359
  .collect();
360
360
 
361
- assert_eq!(number_of_elements, values.len());
361
+ assert_eq!(number_of_elements as usize, values.len());
362
362
  assert_eq!(values.len(), expected.len());
363
363
  assert!(values.iter().all(|i| expected.contains(i)));
364
364
  }
@@ -399,7 +399,7 @@ mod tests {
399
399
  .map(|s| s.key().parse().unwrap())
400
400
  .collect();
401
401
 
402
- assert_eq!(number_of_elements, values.len());
402
+ assert_eq!(number_of_elements as usize, values.len());
403
403
  assert_eq!(values.len(), expected.len());
404
404
  assert!(values.iter().all(|i| expected.contains(i)));
405
405
  }
@@ -440,7 +440,7 @@ mod tests {
440
440
  .map(|s| s.key().parse().unwrap())
441
441
  .collect();
442
442
 
443
- assert_eq!(number_of_elements, values.len());
443
+ assert_eq!(number_of_elements as usize, values.len());
444
444
  assert_eq!(values.len(), expected.len());
445
445
  assert!(values.iter().all(|i| expected.contains(i)));
446
446
  }
@@ -482,7 +482,7 @@ mod tests {
482
482
  .map(|s| s.key().parse().unwrap())
483
483
  .collect();
484
484
 
485
- assert_eq!(number_of_elements, values.len());
485
+ assert_eq!(number_of_elements as usize, values.len());
486
486
  assert_eq!(values.len(), expected.len());
487
487
  assert!(values.iter().all(|i| expected.contains(i)));
488
488
  }
@@ -46,11 +46,11 @@ impl DataStore for DataStoreV1 {
46
46
  self.nodes.len()
47
47
  }
48
48
 
49
- fn stored_paragraph_count(&self) -> usize {
50
- store::stored_elements(&self.nodes)
49
+ fn stored_paragraph_count(&self) -> u32 {
50
+ store::stored_elements(&self.nodes) as u32
51
51
  }
52
52
 
53
- fn stored_vector_count(&self) -> usize {
53
+ fn stored_vector_count(&self) -> u32 {
54
54
  self.stored_paragraph_count()
55
55
  }
56
56
 
@@ -106,8 +106,8 @@ impl ParagraphStore {
106
106
  self.data.len() + self.pos.len()
107
107
  }
108
108
 
109
- pub fn stored_elements(&self) -> usize {
110
- self.pos.len() / U32_LEN
109
+ pub fn stored_elements(&self) -> u32 {
110
+ (self.pos.len() / U32_LEN) as u32
111
111
  }
112
112
  }
113
113
 
@@ -85,8 +85,8 @@ impl VectorStore {
85
85
  self.data.len()
86
86
  }
87
87
 
88
- pub fn stored_elements(&self) -> usize {
89
- self.data.len() / (self.record_len_bytes)
88
+ pub fn stored_elements(&self) -> u32 {
89
+ (self.data.len() / (self.record_len_bytes)) as u32
90
90
  }
91
91
 
92
92
  fn record_start(&self, VectorAddr(addr): VectorAddr) -> usize {
@@ -91,11 +91,11 @@ impl DataStore for DataStoreV2 {
91
91
  self.vectors.size_bytes() + self.paragraphs.size_bytes()
92
92
  }
93
93
 
94
- fn stored_paragraph_count(&self) -> usize {
94
+ fn stored_paragraph_count(&self) -> u32 {
95
95
  self.paragraphs.stored_elements()
96
96
  }
97
97
 
98
- fn stored_vector_count(&self) -> usize {
98
+ fn stored_vector_count(&self) -> u32 {
99
99
  self.vectors.stored_elements()
100
100
  }
101
101
 
@@ -90,8 +90,8 @@ impl ParagraphRef<'_> {
90
90
 
91
91
  pub trait DataStore: Sync + Send {
92
92
  fn size_bytes(&self) -> usize;
93
- fn stored_paragraph_count(&self) -> usize;
94
- fn stored_vector_count(&self) -> usize;
93
+ fn stored_paragraph_count(&self) -> u32;
94
+ fn stored_vector_count(&self) -> u32;
95
95
  fn get_paragraph(&self, id: ParagraphAddr) -> ParagraphRef;
96
96
  fn get_vector(&self, id: VectorAddr) -> VectorRef;
97
97
  fn will_need(&self, id: VectorAddr);
@@ -99,5 +99,5 @@ pub trait DataStore: Sync + Send {
99
99
  }
100
100
 
101
101
  pub fn iter_paragraphs(data_store: &impl DataStore) -> impl Iterator<Item = ParagraphAddr> {
102
- (0..data_store.stored_paragraph_count() as u32).map(ParagraphAddr)
102
+ (0..data_store.stored_paragraph_count()).map(ParagraphAddr)
103
103
  }
@@ -46,9 +46,9 @@
46
46
  use std::collections::HashMap;
47
47
  use std::io;
48
48
 
49
- use super::Address;
50
49
  use super::ops_hnsw::{Hnsw, Layer};
51
50
  use super::ram_hnsw::{Edge, EntryPoint, RAMHnsw, RAMLayer};
51
+ use crate::VectorAddr;
52
52
  use crate::data_types::usize_utils::*;
53
53
 
54
54
  const EDGE_LEN: usize = 4;
@@ -68,16 +68,16 @@ pub struct DiskLayer<'a> {
68
68
 
69
69
  impl<'a> Layer for &'a DiskLayer<'a> {
70
70
  type EdgeIt = EdgeIter<'a>;
71
- fn get_out_edges(&self, Address(node): Address) -> Self::EdgeIt {
72
- let node = DiskHnsw::get_node(self.hnsw, node);
71
+ fn get_out_edges(&self, address: VectorAddr) -> Self::EdgeIt {
72
+ let node = DiskHnsw::get_node(self.hnsw, address);
73
73
  DiskHnsw::get_out_edges(node, self.layer)
74
74
  }
75
75
  }
76
76
 
77
77
  impl<'a> Layer for DiskLayer<'a> {
78
78
  type EdgeIt = EdgeIter<'a>;
79
- fn get_out_edges(&self, Address(node): Address) -> Self::EdgeIt {
80
- let node = DiskHnsw::get_node(self.hnsw, node);
79
+ fn get_out_edges(&self, address: VectorAddr) -> Self::EdgeIt {
80
+ let node = DiskHnsw::get_node(self.hnsw, address);
81
81
  DiskHnsw::get_out_edges(node, self.layer)
82
82
  }
83
83
  }
@@ -97,30 +97,30 @@ pub struct EdgeIter<'a> {
97
97
  buf: &'a [u8],
98
98
  }
99
99
  impl Iterator for EdgeIter<'_> {
100
- type Item = (Address, Edge);
100
+ type Item = (VectorAddr, Edge);
101
101
  fn next(&mut self) -> Option<Self::Item> {
102
102
  if self.buf.len() == self.crnt {
103
103
  None
104
104
  } else {
105
105
  let buf = self.buf;
106
106
  let mut crnt = self.crnt;
107
- let node = usize_from_slice_le(&buf[crnt..(crnt + NODE_LEN)]);
107
+ let node_addr = usize_from_slice_le(&buf[crnt..(crnt + NODE_LEN)]);
108
108
  crnt += USIZE_LEN;
109
109
  let edge = f32_from_le_bytes(&buf[crnt..(crnt + EDGE_LEN)]);
110
110
  crnt += EDGE_LEN;
111
111
  self.crnt = crnt;
112
- Some((Address(node), edge))
112
+ Some((VectorAddr(node_addr as u32), edge))
113
113
  }
114
114
  }
115
115
  }
116
116
 
117
117
  pub struct DiskHnsw;
118
118
  impl DiskHnsw {
119
- fn serialize_node<W>(mut buf: W, offset: usize, node: usize, hnsw: &RAMHnsw) -> io::Result<usize>
119
+ fn serialize_node<W>(mut buf: W, offset: usize, node_addr: u32, hnsw: &RAMHnsw) -> io::Result<usize>
120
120
  where
121
121
  W: io::Write,
122
122
  {
123
- let node = Address(node);
123
+ let node = VectorAddr(node_addr);
124
124
  let mut length = offset;
125
125
  let mut indexing = HashMap::new();
126
126
  for layer in 0..hnsw.no_layers() {
@@ -129,7 +129,7 @@ impl DiskHnsw {
129
129
  buf.write_all(&no_edges.to_le_bytes())?;
130
130
  length += USIZE_LEN;
131
131
  for (cnx, edge) in hnsw.get_layer(layer).get_out_edges(node) {
132
- buf.write_all(&cnx.0.to_le_bytes())?;
132
+ buf.write_all(&(cnx.0 as usize).to_le_bytes())?;
133
133
  buf.write_all(&edge.to_le_bytes())?;
134
134
  length += CNX_LEN;
135
135
  }
@@ -157,7 +157,7 @@ impl DiskHnsw {
157
157
  buf: &node[cnx_start..cnx_end],
158
158
  }
159
159
  }
160
- pub fn serialize_into<W: io::Write>(mut buf: W, no_nodes: usize, hnsw: RAMHnsw) -> io::Result<()> {
160
+ pub fn serialize_into<W: io::Write>(mut buf: W, no_nodes: u32, hnsw: RAMHnsw) -> io::Result<()> {
161
161
  if let Some(entry_point) = hnsw.entry_point {
162
162
  let mut length = 0;
163
163
  let mut nodes_end = vec![];
@@ -171,7 +171,7 @@ impl DiskHnsw {
171
171
  }
172
172
  let EntryPoint { node, layer } = entry_point;
173
173
  buf.write_all(&layer.to_le_bytes())?;
174
- buf.write_all(&node.0.to_le_bytes())?;
174
+ buf.write_all(&(node.0 as usize).to_le_bytes())?;
175
175
  let _length = length + 2 * USIZE_LEN;
176
176
  buf.flush()?;
177
177
  }
@@ -182,10 +182,10 @@ impl DiskHnsw {
182
182
  if !hnsw.is_empty() {
183
183
  let node_start = hnsw.len() - USIZE_LEN;
184
184
  let layer_start = node_start - USIZE_LEN;
185
- let node = usize_from_slice_le(&hnsw[node_start..(node_start + USIZE_LEN)]);
185
+ let node_addr = usize_from_slice_le(&hnsw[node_start..(node_start + NODE_LEN)]);
186
186
  let layer = usize_from_slice_le(&hnsw[layer_start..(layer_start + USIZE_LEN)]);
187
187
  Some(EntryPoint {
188
- node: Address(node),
188
+ node: VectorAddr(node_addr as u32),
189
189
  layer,
190
190
  })
191
191
  } else {
@@ -194,12 +194,12 @@ impl DiskHnsw {
194
194
  }
195
195
  // hnsw must be serialized using MHnsw, may have trailing bytes at the start.
196
196
  // The returned node will have trailing bytes at the start.
197
- pub fn get_node(hnsw: &[u8], node: usize) -> &[u8] {
197
+ pub fn get_node(hnsw: &[u8], address: VectorAddr) -> &[u8] {
198
198
  let indexing_end = hnsw.len() - (2 * USIZE_LEN);
199
199
  // node + 1 since the layers are stored in reverse order.
200
200
  // [n3, n2, n1, n0, end] Since we have the position of end, the node i is
201
201
  // i + 1 positions to its left.
202
- let pos = indexing_end - ((node + 1) * USIZE_LEN);
202
+ let pos = indexing_end - ((address.0 as usize + 1) * USIZE_LEN);
203
203
  let node_end = usize_from_slice_le(&hnsw[pos..(pos + USIZE_LEN)]);
204
204
  &hnsw[..node_end]
205
205
  }
@@ -213,9 +213,9 @@ impl DiskHnsw {
213
213
  let end = hnsw.len();
214
214
  ram.entry_point = Self::get_entry_point(hnsw);
215
215
 
216
- let mut node_index = 0;
216
+ let mut node_index: u32 = 0;
217
217
  loop {
218
- let indexing_pos = end - (node_index + 3) * USIZE_LEN;
218
+ let indexing_pos = end - (node_index as usize + 3) * USIZE_LEN;
219
219
  let node_end = usize_from_slice_le(&hnsw[indexing_pos..indexing_pos + USIZE_LEN]);
220
220
  let mut layer_index = 0;
221
221
  loop {
@@ -231,7 +231,7 @@ impl DiskHnsw {
231
231
  let cnx_end = cnx_start + number_edges * CNX_LEN;
232
232
 
233
233
  if number_edges > 0 {
234
- let ram_edges = ram.layers[layer_index].out.entry(Address(node_index)).or_default();
234
+ let ram_edges = ram.layers[layer_index].out.entry(VectorAddr(node_index)).or_default();
235
235
  let edges = EdgeIter {
236
236
  crnt: 0,
237
237
  buf: &hnsw[cnx_start..cnx_end],
@@ -261,11 +261,11 @@ impl DiskHnsw {
261
261
  mod tests {
262
262
  use super::*;
263
263
  use crate::hnsw::ram_hnsw::RAMLayer;
264
- fn layer_check<L: Layer>(buf: L, no_nodes: usize, cnx: &[Vec<(Address, Edge)>]) {
264
+ fn layer_check<L: Layer>(buf: L, no_nodes: u32, cnx: &[Vec<(VectorAddr, Edge)>]) {
265
265
  let no_cnx = vec![];
266
266
  for i in 0..no_nodes {
267
- let expected = cnx.get(i).unwrap_or(&no_cnx);
268
- let got: Vec<_> = buf.get_out_edges(Address(i)).collect();
267
+ let expected = cnx.get(i as usize).unwrap_or(&no_cnx);
268
+ let got: Vec<_> = buf.get_out_edges(VectorAddr(i)).collect();
269
269
  assert_eq!(expected, &got);
270
270
  }
271
271
  }
@@ -282,23 +282,35 @@ mod tests {
282
282
  fn hnsw_test() {
283
283
  let no_nodes = 3;
284
284
  let cnx0 = vec![
285
- vec![(Address(1), 1.0)],
286
- vec![(Address(2), 2.0)],
287
- vec![(Address(3), 3.0)],
285
+ vec![(VectorAddr(1), 1.0)],
286
+ vec![(VectorAddr(2), 2.0)],
287
+ vec![(VectorAddr(3), 3.0)],
288
288
  ];
289
289
  let layer0 = RAMLayer {
290
- out: cnx0.iter().enumerate().map(|(i, c)| (Address(i), c.clone())).collect(),
290
+ out: cnx0
291
+ .iter()
292
+ .enumerate()
293
+ .map(|(i, c)| (VectorAddr(i as u32), c.clone()))
294
+ .collect(),
291
295
  };
292
- let cnx1 = vec![vec![(Address(1), 4.0)], vec![(Address(2), 5.0)]];
296
+ let cnx1 = vec![vec![(VectorAddr(1), 4.0)], vec![(VectorAddr(2), 5.0)]];
293
297
  let layer1 = RAMLayer {
294
- out: cnx1.iter().enumerate().map(|(i, c)| (Address(i), c.clone())).collect(),
298
+ out: cnx1
299
+ .iter()
300
+ .enumerate()
301
+ .map(|(i, c)| (VectorAddr(i as u32), c.clone()))
302
+ .collect(),
295
303
  };
296
- let cnx2 = vec![vec![(Address(1), 6.0)]];
304
+ let cnx2 = vec![vec![(VectorAddr(1), 6.0)]];
297
305
  let layer2 = RAMLayer {
298
- out: cnx2.iter().enumerate().map(|(i, c)| (Address(i), c.clone())).collect(),
306
+ out: cnx2
307
+ .iter()
308
+ .enumerate()
309
+ .map(|(i, c)| (VectorAddr(i as u32), c.clone()))
310
+ .collect(),
299
311
  };
300
312
  let entry_point = EntryPoint {
301
- node: Address(0),
313
+ node: VectorAddr(0),
302
314
  layer: 2,
303
315
  };
304
316
  let mut hnsw = RAMHnsw::new();
@@ -320,23 +332,35 @@ mod tests {
320
332
  fn hnsw_deserialize_test() {
321
333
  let no_nodes = 3;
322
334
  let cnx0 = [
323
- vec![(Address(1), 1.0)],
324
- vec![(Address(2), 2.0)],
325
- vec![(Address(3), 3.0)],
335
+ vec![(VectorAddr(1), 1.0)],
336
+ vec![(VectorAddr(2), 2.0)],
337
+ vec![(VectorAddr(3), 3.0)],
326
338
  ];
327
339
  let layer0 = RAMLayer {
328
- out: cnx0.iter().enumerate().map(|(i, c)| (Address(i), c.clone())).collect(),
340
+ out: cnx0
341
+ .iter()
342
+ .enumerate()
343
+ .map(|(i, c)| (VectorAddr(i as u32), c.clone()))
344
+ .collect(),
329
345
  };
330
- let cnx1 = [vec![(Address(1), 4.0)], vec![(Address(2), 5.0)]];
346
+ let cnx1 = [vec![(VectorAddr(1), 4.0)], vec![(VectorAddr(2), 5.0)]];
331
347
  let layer1 = RAMLayer {
332
- out: cnx1.iter().enumerate().map(|(i, c)| (Address(i), c.clone())).collect(),
348
+ out: cnx1
349
+ .iter()
350
+ .enumerate()
351
+ .map(|(i, c)| (VectorAddr(i as u32), c.clone()))
352
+ .collect(),
333
353
  };
334
- let cnx2 = [vec![(Address(1), 6.0)]];
354
+ let cnx2 = [vec![(VectorAddr(1), 6.0)]];
335
355
  let layer2 = RAMLayer {
336
- out: cnx2.iter().enumerate().map(|(i, c)| (Address(i), c.clone())).collect(),
356
+ out: cnx2
357
+ .iter()
358
+ .enumerate()
359
+ .map(|(i, c)| (VectorAddr(i as u32), c.clone()))
360
+ .collect(),
337
361
  };
338
362
  let entry_point = EntryPoint {
339
- node: Address(0),
363
+ node: VectorAddr(0),
340
364
  layer: 2,
341
365
  };
342
366
  let mut hnsw = RAMHnsw::new();
@@ -27,26 +27,26 @@ use rustc_hash::FxHashSet;
27
27
  use std::cmp::{Ordering, Reverse};
28
28
  use std::collections::{BinaryHeap, HashMap, HashSet, VecDeque};
29
29
 
30
- use crate::ParagraphAddr;
31
30
  use crate::inverted_index::FilterBitSet;
31
+ use crate::{ParagraphAddr, VectorAddr};
32
32
 
33
33
  use super::params;
34
34
  use super::*;
35
35
 
36
36
  /// Implementors of this trait can guide the hnsw search
37
37
  pub trait DataRetriever: std::marker::Sync {
38
- fn similarity(&self, x: Address, y: Address) -> f32;
39
- fn paragraph(&self, x: Address) -> ParagraphAddr;
40
- fn get_vector(&self, x: Address) -> &[u8];
38
+ fn similarity(&self, x: VectorAddr, y: VectorAddr) -> f32;
39
+ fn paragraph(&self, x: VectorAddr) -> ParagraphAddr;
40
+ fn get_vector(&self, x: VectorAddr) -> &[u8];
41
41
  /// Embeddings with smaller similarity should not be considered.
42
42
  fn min_score(&self) -> f32;
43
- fn will_need(&self, x: Address);
43
+ fn will_need(&self, x: VectorAddr);
44
44
  }
45
45
 
46
46
  /// Implementors of this trait are layers of an HNSW where a nearest neighbour search can be ran.
47
47
  pub trait Layer {
48
- type EdgeIt: Iterator<Item = (Address, Edge)>;
49
- fn get_out_edges(&self, node: Address) -> Self::EdgeIt;
48
+ type EdgeIt: Iterator<Item = (VectorAddr, Edge)>;
49
+ fn get_out_edges(&self, node: VectorAddr) -> Self::EdgeIt;
50
50
  }
51
51
 
52
52
  /// Implementors of this trait are an HNSW where search can be ran.
@@ -56,11 +56,11 @@ pub trait Hnsw {
56
56
  fn get_layer(&self, i: usize) -> Self::L;
57
57
  }
58
58
 
59
- /// Tuples ([`Address`], [`f32`]) can not be stored in a [`BinaryHeap`] because [`f32`] does not
59
+ /// Tuples ([`VectorAddr`], [`f32`]) can not be stored in a [`BinaryHeap`] because [`f32`] does not
60
60
  /// implement [`Ord`]. [`Cnx`] is an application of the new-type pattern that lets us bypass the
61
61
  /// orphan rules and store such tuples in a [`BinaryHeap`].
62
62
  #[derive(Clone, Copy)]
63
- pub struct Cnx(pub Address, pub f32);
63
+ pub struct Cnx(pub VectorAddr, pub f32);
64
64
  impl Eq for Cnx {}
65
65
  impl Ord for Cnx {
66
66
  fn cmp(&self, other: &Self) -> Ordering {
@@ -79,7 +79,7 @@ impl PartialOrd for Cnx {
79
79
  }
80
80
 
81
81
  /// A list of neighbours containing a pointer to the embedding and their similarity.
82
- pub type Neighbours = Vec<(Address, f32)>;
82
+ pub type Neighbours = Vec<(VectorAddr, f32)>;
83
83
 
84
84
  /// Guides an algorithm to the valid nodes.
85
85
  struct NodeFilter<'a, DR> {
@@ -94,7 +94,7 @@ impl<DR: DataRetriever> NodeFilter<'_, DR> {
94
94
  self.filter.contains(n)
95
95
  }
96
96
 
97
- pub fn is_valid(&self, n: Address, score: f32) -> bool {
97
+ pub fn is_valid(&self, n: VectorAddr, score: f32) -> bool {
98
98
  !score.is_nan()
99
99
  // Reject the candidate if we already have a result for the same paragraph
100
100
  && !self.paragraphs.contains(&self.retriever.paragraph(n))
@@ -104,7 +104,7 @@ impl<DR: DataRetriever> NodeFilter<'_, DR> {
104
104
 
105
105
  /// Adds a result so that further candidates with the same vector
106
106
  /// or paragraph will get rejected.
107
- pub fn add_result(&mut self, n: Address) {
107
+ pub fn add_result(&mut self, n: VectorAddr) {
108
108
  self.paragraphs.insert(self.retriever.paragraph(n));
109
109
  self.vec_counter.add(self.retriever.get_vector(n));
110
110
  }
@@ -121,9 +121,9 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
121
121
  fn select_neighbours_heuristic(
122
122
  &self,
123
123
  k_neighbours: usize,
124
- candidates: Vec<(Address, Edge)>,
124
+ candidates: Vec<(VectorAddr, Edge)>,
125
125
  layer: &RAMLayer,
126
- ) -> Vec<(Address, Edge)> {
126
+ ) -> Vec<(VectorAddr, Edge)> {
127
127
  let mut results = Vec::new();
128
128
  let mut discarded = BinaryHeap::new();
129
129
 
@@ -163,7 +163,7 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
163
163
 
164
164
  results
165
165
  }
166
- fn similarity(&self, x: Address, y: Address) -> f32 {
166
+ fn similarity(&self, x: VectorAddr, y: VectorAddr) -> f32 {
167
167
  self.retriever.similarity(x, y)
168
168
  }
169
169
  fn get_random_layer(&mut self) -> usize {
@@ -173,19 +173,19 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
173
173
  }
174
174
  fn closest_up_nodes<L: Layer>(
175
175
  &'a self,
176
- entry_points: Vec<Address>,
177
- query: Address,
176
+ entry_points: Vec<VectorAddr>,
177
+ query: VectorAddr,
178
178
  layer: L,
179
179
  number_of_results: usize,
180
180
  mut filter: NodeFilter<'a, DR>,
181
- ) -> Vec<(Address, f32)> {
181
+ ) -> Vec<(VectorAddr, f32)> {
182
182
  // We just need to perform BFS, the replacement is the closest node to the actual
183
183
  // best solution. This algorithm takes a lazy approach to computing the similarity of
184
184
  // candidates.
185
185
 
186
186
  const MAX_VECTORS_TO_PRELOAD: u32 = 20_000;
187
187
  let mut results = Vec::new();
188
- let inner_entry_points_iter = entry_points.iter().map(|Address(inner)| *inner);
188
+ let inner_entry_points_iter = entry_points.iter().map(|VectorAddr(inner)| *inner as usize);
189
189
  let mut visited_nodes: BitSet = BitSet::from_iter(inner_entry_points_iter);
190
190
  let mut candidates = VecDeque::from(entry_points);
191
191
 
@@ -215,8 +215,8 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
215
215
  let mut sorted_out: Vec<_> = layer.get_out_edges(candidate).collect();
216
216
  sorted_out.sort_by(|a, b| b.1.total_cmp(&a.1));
217
217
  sorted_out.into_iter().for_each(|(new_candidate, _)| {
218
- if !visited_nodes.contains(new_candidate.0) {
219
- visited_nodes.insert(new_candidate.0);
218
+ if !visited_nodes.contains(new_candidate.0 as usize) {
219
+ visited_nodes.insert(new_candidate.0 as usize);
220
220
  candidates.push_back(new_candidate);
221
221
 
222
222
  if self.preload_nodes && preloaded < MAX_VECTORS_TO_PRELOAD {
@@ -231,10 +231,10 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
231
231
  }
232
232
  fn layer_search<L: Layer>(
233
233
  &self,
234
- x: Address,
234
+ x: VectorAddr,
235
235
  layer: L,
236
236
  k_neighbours: usize,
237
- entry_points: &[Address],
237
+ entry_points: &[VectorAddr],
238
238
  ) -> Neighbours {
239
239
  let mut visited = FxHashSet::default();
240
240
  let mut candidates = BinaryHeap::new();
@@ -280,7 +280,13 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
280
280
  .collect()
281
281
  }
282
282
 
283
- fn layer_insert(&self, x: Address, layer: &mut RAMLayer, entry_points: &[Address], mmax: usize) -> Vec<Address> {
283
+ fn layer_insert(
284
+ &self,
285
+ x: VectorAddr,
286
+ layer: &mut RAMLayer,
287
+ entry_points: &[VectorAddr],
288
+ mmax: usize,
289
+ ) -> Vec<VectorAddr> {
284
290
  use params::*;
285
291
  let neighbours = self.layer_search::<&RAMLayer>(x, layer, ef_construction(), entry_points);
286
292
  let neighbours = self.select_neighbours_heuristic(m(), neighbours, layer);
@@ -304,7 +310,7 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
304
310
  }
305
311
  result
306
312
  }
307
- pub fn insert(&mut self, x: Address, hnsw: &mut RAMHnsw) {
313
+ pub fn insert(&mut self, x: VectorAddr, hnsw: &mut RAMHnsw) {
308
314
  match hnsw.entry_point {
309
315
  None => {
310
316
  let top_level = self.get_random_layer();
@@ -331,7 +337,7 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
331
337
 
332
338
  pub fn search<H: Hnsw>(
333
339
  &self,
334
- query: Address,
340
+ query: VectorAddr,
335
341
  hnsw: H,
336
342
  k_neighbours: usize,
337
343
  with_filter: &FilterBitSet,