nidx-binding 6.9.0.post582__tar.gz → 6.9.1.post587__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 (263) hide show
  1. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/PKG-INFO +1 -1
  2. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/reader.rs +5 -26
  3. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/request_types.rs +0 -1
  4. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/tests/reader.rs +0 -8
  5. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/pyproject.toml +1 -1
  6. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/reader.rs +5 -7
  7. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/request_types.rs +0 -1
  8. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/tests/test_search.rs +0 -10
  9. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/hnsw/ops_hnsw.rs +17 -2
  10. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/indexer.rs +5 -10
  11. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/request_types.rs +0 -2
  12. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/searcher.rs +5 -14
  13. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/segment.rs +36 -14
  14. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/pyproject.toml +1 -1
  15. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/query_planner.rs +0 -3
  16. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/shard_search.rs +9 -13
  17. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/telemetry/log_format.rs +1 -0
  18. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/telemetry.rs +1 -1
  19. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.config/nextest.toml +0 -0
  20. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
  21. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
  22. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
  23. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
  24. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
  25. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
  26. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
  27. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
  28. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
  29. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
  30. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
  31. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
  32. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
  33. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
  34. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
  35. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
  36. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
  37. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
  38. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
  39. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
  40. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
  41. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
  42. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
  43. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
  44. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
  45. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
  46. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
  47. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
  48. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
  49. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
  50. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
  51. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
  52. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
  53. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
  54. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
  55. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
  56. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
  57. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
  58. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
  59. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
  60. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
  61. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
  62. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
  63. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
  64. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
  65. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
  66. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
  67. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
  68. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
  69. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
  70. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
  71. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
  72. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
  73. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
  74. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
  75. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
  76. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
  77. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
  78. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
  79. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/Cargo.lock +0 -0
  80. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/Cargo.toml +0 -0
  81. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/README.md +0 -0
  82. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/migrations/20241007163501_initial.sql +0 -0
  83. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/migrations/20241211120039_merge_job_priority.sql +0 -0
  84. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/migrations/20241211121159_basic_indexes.sql +0 -0
  85. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/migrations/20241212151105_check_segment_records.sql +0 -0
  86. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/migrations/20250110145554_in_flight_messages.sql +0 -0
  87. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_binding/Cargo.toml +0 -0
  88. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_binding/src/lib.rs +0 -0
  89. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/Cargo.toml +0 -0
  90. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/fuzzy_query.rs +0 -0
  91. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/lib.rs +0 -0
  92. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/query_io.rs +0 -0
  93. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -0
  94. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -0
  95. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/query_parser/stop_words.rs +0 -0
  96. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/query_parser/tokenizer.rs +0 -0
  97. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/query_parser.rs +0 -0
  98. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/resource_indexer.rs +0 -0
  99. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/schema.rs +0 -0
  100. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/search_query.rs +0 -0
  101. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/search_response.rs +0 -0
  102. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/src/set_query.rs +0 -0
  103. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/README.md +0 -0
  104. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/ar.json +0 -0
  105. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/az.json +0 -0
  106. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/bn.json +0 -0
  107. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/ca.json +0 -0
  108. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/ch.json +0 -0
  109. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/da.json +0 -0
  110. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/de.json +0 -0
  111. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/el.json +0 -0
  112. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/en.json +0 -0
  113. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/es.json +0 -0
  114. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/eu.json +0 -0
  115. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/extract.py +0 -0
  116. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/fi.json +0 -0
  117. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/fr.json +0 -0
  118. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/he.json +0 -0
  119. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/hu.json +0 -0
  120. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/id.json +0 -0
  121. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/it.json +0 -0
  122. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/kk.json +0 -0
  123. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/ne.json +0 -0
  124. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/nl.json +0 -0
  125. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/no.json +0 -0
  126. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/pt.json +0 -0
  127. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/ro.json +0 -0
  128. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/ru.json +0 -0
  129. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/sl.json +0 -0
  130. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/sv.json +0 -0
  131. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/tg.json +0 -0
  132. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/stop_words/tr.json +0 -0
  133. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_paragraph/tests/common/mod.rs +0 -0
  134. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/Cargo.toml +0 -0
  135. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/build.py +0 -0
  136. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/build.rs +0 -0
  137. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/nidx.proto +0 -0
  138. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/nodereader.proto +0 -0
  139. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/noderesources.proto +0 -0
  140. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/nodewriter.proto +0 -0
  141. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_protos/src/lib.rs +0 -0
  142. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/Cargo.toml +0 -0
  143. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/graph_collector.rs +0 -0
  144. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/graph_query_parser.rs +0 -0
  145. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/io_maps.rs +0 -0
  146. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/lib.rs +0 -0
  147. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/reader.rs +0 -0
  148. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/resource_indexer.rs +0 -0
  149. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/schema.rs +0 -0
  150. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/src/top_unique_n.rs +0 -0
  151. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/tests/common/mod.rs +0 -0
  152. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
  153. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/tests/test_graph_search.rs +0 -0
  154. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_relation/tests/test_writer.rs +0 -0
  155. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_tantivy/Cargo.toml +0 -0
  156. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_tantivy/src/index_reader.rs +0 -0
  157. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_tantivy/src/lib.rs +0 -0
  158. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_tantivy/src/utils.rs +0 -0
  159. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_tests/Cargo.toml +0 -0
  160. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_tests/src/graph.rs +0 -0
  161. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_tests/src/lib.rs +0 -0
  162. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/Cargo.toml +0 -0
  163. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/lib.rs +0 -0
  164. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/prefilter.rs +0 -0
  165. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/query_io.rs +0 -0
  166. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/resource_indexer.rs +0 -0
  167. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/schema.rs +0 -0
  168. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/src/search_query.rs +0 -0
  169. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/tests/common/mod.rs +0 -0
  170. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/tests/test_deletions.rs +0 -0
  171. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/tests/test_flow.rs +0 -0
  172. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_text/tests/test_streaming.rs +0 -0
  173. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_types/Cargo.toml +0 -0
  174. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_types/src/lib.rs +0 -0
  175. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_types/src/prefilter.rs +0 -0
  176. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_types/src/query_language.rs +0 -0
  177. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/Cargo.toml +0 -0
  178. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/config.rs +0 -0
  179. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v1/node.rs +0 -0
  180. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v1/store.rs +0 -0
  181. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v1/trie.rs +0 -0
  182. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
  183. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v1.rs +0 -0
  184. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
  185. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v2/quant_vector_store.rs +0 -0
  186. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
  187. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store/v2.rs +0 -0
  188. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_store.rs +0 -0
  189. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/data_types.rs +0 -0
  190. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/formula.rs +0 -0
  191. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/hnsw/disk_hnsw.rs +0 -0
  192. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/hnsw/params.rs +0 -0
  193. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/hnsw/ram_hnsw.rs +0 -0
  194. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/hnsw.rs +0 -0
  195. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
  196. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/inverted_index/map.rs +0 -0
  197. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/inverted_index.rs +0 -0
  198. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/lib.rs +0 -0
  199. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/multivector.rs +0 -0
  200. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/query_io.rs +0 -0
  201. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/segment/tests.rs +0 -0
  202. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/utils.rs +0 -0
  203. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
  204. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/vector_types/mod.rs +0 -0
  205. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/src/vector_types/rabitq.rs +0 -0
  206. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/tests/common/mod.rs +0 -0
  207. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/tests/test_basic_search.rs +0 -0
  208. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/tests/test_hidden.rs +0 -0
  209. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/nidx_vector/tests/test_maxsim.rs +0 -0
  210. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/api/grpc.rs +0 -0
  211. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/api/shards.rs +0 -0
  212. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/api.rs +0 -0
  213. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/control.rs +0 -0
  214. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/errors.rs +0 -0
  215. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/grpc_server.rs +0 -0
  216. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/import_export.rs +0 -0
  217. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/indexer.rs +0 -0
  218. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/lib.rs +0 -0
  219. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/main.rs +0 -0
  220. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metadata/deletion.rs +0 -0
  221. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metadata/index.rs +0 -0
  222. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metadata/index_request.rs +0 -0
  223. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metadata/merge_job.rs +0 -0
  224. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metadata/segment.rs +0 -0
  225. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metadata/shard.rs +0 -0
  226. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metadata.rs +0 -0
  227. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/metrics.rs +0 -0
  228. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/scheduler/audit_task.rs +0 -0
  229. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/scheduler/log_merge.rs +0 -0
  230. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/scheduler/merge_task.rs +0 -0
  231. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/scheduler/metrics_task.rs +0 -0
  232. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/scheduler/purge_tasks.rs +0 -0
  233. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/scheduler/vector_merge.rs +0 -0
  234. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/scheduler.rs +0 -0
  235. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/grpc.rs +0 -0
  236. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/index_cache.rs +0 -0
  237. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/query_language.rs +0 -0
  238. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/shard_selector.rs +0 -0
  239. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/shard_suggest.rs +0 -0
  240. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/streams.rs +0 -0
  241. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher/sync.rs +0 -0
  242. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/searcher.rs +0 -0
  243. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/segment_store.rs +0 -0
  244. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/settings.rs +0 -0
  245. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/telemetry/duration_layer.rs +0 -0
  246. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/telemetry/middleware.rs +0 -0
  247. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/tool.rs +0 -0
  248. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/utilization_tracker.rs +0 -0
  249. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/src/worker.rs +0 -0
  250. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/common/mod.rs +0 -0
  251. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/common/services.rs +0 -0
  252. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_date_range_search.rs +0 -0
  253. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_search_filtering.rs +0 -0
  254. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_search_relations.rs +0 -0
  255. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_search_sorting.rs +0 -0
  256. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_searcher_cluster.rs +0 -0
  257. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_security_search.rs +0 -0
  258. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_shards.rs +0 -0
  259. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_shards_api.rs +0 -0
  260. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_suggest.rs +0 -0
  261. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_synced_searcher.rs +0 -0
  262. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/tests/test_vector_normalization.rs +0 -0
  263. {nidx_binding-6.9.0.post582 → nidx_binding-6.9.1.post587}/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.0.post582
3
+ Version: 6.9.1.post587
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -113,16 +113,11 @@ impl ParagraphReaderService {
113
113
  ) -> anyhow::Result<ParagraphSearchResponse> {
114
114
  let mut time_tracker = TimeTracker::start();
115
115
 
116
- let shard_id = &request.id;
117
116
  let text = &request.body;
118
117
  let results = request.result_per_page as usize;
119
118
  let (keyword_query, termc, fuzzy_query) = search_query(request, prefilter, &self.index, &self.schema);
120
119
  let facets = request.facets();
121
- trace!(
122
- shard_id,
123
- "Query parsing took {}µs",
124
- time_tracker.checkpoint().as_micros()
125
- );
120
+ debug!("Query parsing took {}µs", time_tracker.checkpoint().as_micros());
126
121
 
127
122
  let searcher = Searcher {
128
123
  request,
@@ -133,22 +128,14 @@ impl ParagraphReaderService {
133
128
  };
134
129
  // println!("Regular search with query: {:#?}", keyword_query);
135
130
  let mut response = searcher.do_search(termc.clone(), keyword_query, self, request.min_score)?;
136
- trace!(
137
- shard_id,
138
- "Keyword search took {}µs",
139
- time_tracker.checkpoint().as_micros()
140
- );
131
+ debug!("Keyword search took {}µs", time_tracker.checkpoint().as_micros());
141
132
 
142
133
  if response.results.is_empty() && request.result_per_page > 0 && request.min_score == 0 as f32 {
143
134
  // println!("Fuzzy search with query: {:#?}", fuzzy_query);
144
135
  let fuzzied = searcher.do_search(termc, fuzzy_query, self, request.min_score)?;
145
136
  response = fuzzied;
146
137
  response.fuzzy_distance = FUZZY_DISTANCE as i32;
147
- trace!(
148
- shard_id,
149
- "Fallback fuzzy query took {}µs",
150
- time_tracker.checkpoint().as_micros()
151
- );
138
+ debug!("Fallback fuzzy query took {}µs", time_tracker.checkpoint().as_micros());
152
139
  }
153
140
 
154
141
  let total = response.results.len() as f32;
@@ -175,16 +162,8 @@ impl ParagraphReaderService {
175
162
  response.next_page = false;
176
163
  }
177
164
 
178
- trace!(
179
- shard_id,
180
- "Result processing took {}µs",
181
- time_tracker.checkpoint().as_micros()
182
- );
183
- trace!(
184
- shard_id,
185
- "Paragraph search took {}µs",
186
- time_tracker.elapsed().as_micros()
187
- );
165
+ debug!("Result processing took {}µs", time_tracker.checkpoint().as_micros());
166
+ debug!("Paragraph search took {}µs", time_tracker.elapsed().as_micros());
188
167
 
189
168
  Ok(response)
190
169
  }
@@ -23,7 +23,6 @@ use tantivy::schema::Facet;
23
23
 
24
24
  #[derive(Clone, Default)]
25
25
  pub struct ParagraphSearchRequest {
26
- pub id: String,
27
26
  pub uuid: String,
28
27
  pub body: String,
29
28
  pub order: Option<nidx_protos::OrderBy>,
@@ -175,7 +175,6 @@ fn test_total_number_of_results() -> anyhow::Result<()> {
175
175
  let paragraph_reader_service = test_reader(&resource);
176
176
 
177
177
  let mut request = ParagraphSearchRequest {
178
- id: shard_id,
179
178
  uuid: rid,
180
179
  ..Default::default()
181
180
  };
@@ -205,7 +204,6 @@ fn test_filtering_formula() -> anyhow::Result<()> {
205
204
 
206
205
  // Only one paragraph matches
207
206
  let mut request = ParagraphSearchRequest {
208
- id: shard_id,
209
207
  uuid: rid,
210
208
  body: "".to_string(),
211
209
  faceted: None,
@@ -259,7 +257,6 @@ fn test_keyword_and_fuzzy_queries() -> anyhow::Result<()> {
259
257
 
260
258
  let paragraph_search = |query: &str| {
261
259
  let request = ParagraphSearchRequest {
262
- id: shard_id.clone(),
263
260
  uuid: rid.clone(),
264
261
  body: query.to_string(),
265
262
  faceted: None,
@@ -327,7 +324,6 @@ fn test_min_score_filter() -> anyhow::Result<()> {
327
324
  let paragraph_reader_service = test_reader(&resource);
328
325
 
329
326
  let mut request = ParagraphSearchRequest {
330
- id: shard_id,
331
327
  uuid: rid,
332
328
  result_per_page: 20,
333
329
  ..Default::default()
@@ -361,7 +357,6 @@ fn test_faceted_search() -> anyhow::Result<()> {
361
357
 
362
358
  // Filter with facets and order
363
359
  let request = ParagraphSearchRequest {
364
- id: shard_id,
365
360
  uuid: rid,
366
361
  faceted: Some(faceted.clone()),
367
362
  result_per_page: 20,
@@ -395,7 +390,6 @@ fn test_order_by() -> anyhow::Result<()> {
395
390
 
396
391
  // Use a sort order
397
392
  let request = ParagraphSearchRequest {
398
- id: "shard1".to_string(),
399
393
  uuid: "".to_string(),
400
394
  body: "this is the".to_string(),
401
395
  order: Some(order),
@@ -440,7 +434,6 @@ fn test_query_parsing() -> anyhow::Result<()> {
440
434
 
441
435
  // Only one paragraph matches
442
436
  let mut search = ParagraphSearchRequest {
443
- id: shard_id,
444
437
  uuid: rid,
445
438
  body: "".to_string(),
446
439
  faceted: None,
@@ -468,7 +461,6 @@ fn test_query_parsing_weird_stuff() -> anyhow::Result<()> {
468
461
  let paragraph_reader_service = test_reader(&resource);
469
462
 
470
463
  let mut search = ParagraphSearchRequest {
471
- id: shard_id,
472
464
  uuid: rid,
473
465
  body: "".to_string(),
474
466
  faceted: None,
@@ -10,7 +10,7 @@ build-backend = "pdm.backend"
10
10
 
11
11
  [project]
12
12
  name = "nidx_protos"
13
- version = "6.9.0.post582"
13
+ version = "6.9.1.post587"
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" }]
@@ -219,12 +219,11 @@ impl TextReaderService {
219
219
  }
220
220
 
221
221
  fn count(&self) -> anyhow::Result<usize> {
222
- let id: Option<String> = None;
223
222
  let time = Instant::now();
224
223
  let searcher = self.reader.searcher();
225
224
  let count = searcher.search(&AllQuery, &Count)?;
226
225
  let v = time.elapsed().as_millis();
227
- debug!("{id:?} - Ending at: {v} ms");
226
+ debug!("Ending at: {v} ms");
228
227
 
229
228
  Ok(count)
230
229
  }
@@ -393,11 +392,10 @@ impl TextReaderService {
393
392
 
394
393
  fn do_search(&self, request: &DocumentSearchRequest) -> anyhow::Result<DocumentSearchResponse> {
395
394
  use crate::search_query::create_query;
396
- let id = Some(&request.id);
397
395
  let time = Instant::now();
398
396
 
399
397
  let v = time.elapsed().as_millis();
400
- debug!("{id:?} - Creating query: starts at {v} ms");
398
+ debug!("Creating query: starts at {v} ms");
401
399
 
402
400
  let query_parser = {
403
401
  let mut query_parser = QueryParser::for_index(&self.index, vec![self.schema.text]);
@@ -428,14 +426,14 @@ impl TextReaderService {
428
426
  facet_collector.add_facet(Facet::from(facet));
429
427
  }
430
428
  let v = time.elapsed().as_millis();
431
- debug!("{id:?} - Creating query: ends at {v} ms");
429
+ debug!("Creating query: ends at {v} ms");
432
430
 
433
431
  let v = time.elapsed().as_millis();
434
- debug!("{id:?} - Searching: starts at {v} ms");
432
+ debug!("Searching: starts at {v} ms");
435
433
 
436
434
  let searcher = self.reader.searcher();
437
435
  let v = time.elapsed().as_millis();
438
- debug!("{id:?} - Searching: ends at {v} ms");
436
+ debug!("Searching: ends at {v} ms");
439
437
 
440
438
  match maybe_order {
441
439
  _ if request.only_faceted => {
@@ -22,7 +22,6 @@ use nidx_protos::FilterExpression;
22
22
 
23
23
  #[derive(Clone, Default)]
24
24
  pub struct DocumentSearchRequest {
25
- pub id: String,
26
25
  pub body: String,
27
26
  pub order: Option<nidx_protos::OrderBy>,
28
27
  pub faceted: Option<nidx_protos::Faceted>,
@@ -38,7 +38,6 @@ fn test_search_queries() {
38
38
  fn query(reader: &TextSearcher, query: impl Into<String>, expected: i32) {
39
39
  let query = query.into();
40
40
  let request = DocumentSearchRequest {
41
- id: "shard".to_string(),
42
41
  body: query.clone(),
43
42
  result_per_page: 20,
44
43
  ..Default::default()
@@ -192,7 +191,6 @@ fn test_filtered_search() {
192
191
  fn query(reader: &TextSearcher, query: impl Into<String>, expression: FilterExpression, expected: i32) {
193
192
  let query = query.into();
194
193
  let request = DocumentSearchRequest {
195
- id: "shard".to_string(),
196
194
  body: query.clone(),
197
195
  result_per_page: 20,
198
196
  filter_expression: Some(expression),
@@ -245,7 +243,6 @@ fn test_search_by_field() {
245
243
  let reader = common::test_reader();
246
244
 
247
245
  let request = DocumentSearchRequest {
248
- id: "shard".to_string(),
249
246
  body: "".to_string(),
250
247
  result_per_page: 20,
251
248
  filter_expression: Some(FilterExpression {
@@ -268,7 +265,6 @@ fn test_faceted_search() {
268
265
  fn query(reader: &TextSearcher, query: impl Into<String>, facets: Faceted, expected: i32) {
269
266
  let query = query.into();
270
267
  let request = DocumentSearchRequest {
271
- id: "shard".to_string(),
272
268
  body: "".to_string(),
273
269
  result_per_page: 20,
274
270
  faceted: Some(facets.clone()),
@@ -302,7 +298,6 @@ fn test_faceted_search() {
302
298
  fn test_quote_fixing() {
303
299
  fn query(reader: &TextSearcher, query: impl Into<String>) {
304
300
  let request = DocumentSearchRequest {
305
- id: "shard".to_string(),
306
301
  body: query.into(),
307
302
  result_per_page: 20,
308
303
  ..Default::default()
@@ -324,7 +319,6 @@ fn test_search_with_min_score() {
324
319
  fn query(reader: &TextSearcher, query: impl Into<String>, min_score: f32, expected: i32) {
325
320
  let query = query.into();
326
321
  let request = DocumentSearchRequest {
327
- id: "shard".to_string(),
328
322
  body: query.clone(),
329
323
  result_per_page: 20,
330
324
  min_score,
@@ -348,7 +342,6 @@ fn test_int_order_pagination() {
348
342
  let reader = common::test_reader();
349
343
 
350
344
  let request = DocumentSearchRequest {
351
- id: "shard".to_string(),
352
345
  body: "".to_string(),
353
346
  result_per_page: 1,
354
347
  order: Some(OrderBy {
@@ -381,7 +374,6 @@ fn test_timestamp_filtering() {
381
374
 
382
375
  let search = |date_range| {
383
376
  let request = DocumentSearchRequest {
384
- id: "shard".to_string(),
385
377
  body: "".to_string(),
386
378
  result_per_page: 10,
387
379
  min_score: f32::MIN,
@@ -420,7 +412,6 @@ fn test_key_filtering() {
420
412
  let reader = common::test_reader();
421
413
 
422
414
  let request = DocumentSearchRequest {
423
- id: "shard".to_string(),
424
415
  body: "".to_string(),
425
416
  result_per_page: 1,
426
417
  min_score: f32::MIN,
@@ -431,7 +422,6 @@ fn test_key_filtering() {
431
422
 
432
423
  let search = |resource| {
433
424
  let request = DocumentSearchRequest {
434
- id: "shard".to_string(),
435
425
  body: "".to_string(),
436
426
  result_per_page: 10,
437
427
  min_score: f32::MIN,
@@ -26,6 +26,8 @@ use rand::rngs::SmallRng;
26
26
  use rustc_hash::FxHashSet;
27
27
  use std::cmp::{Ordering, Reverse};
28
28
  use std::collections::{BinaryHeap, HashMap, HashSet, VecDeque};
29
+ use std::time::Instant;
30
+ use tracing::trace;
29
31
 
30
32
  use crate::inverted_index::FilterBitSet;
31
33
  use crate::vector_types::rabitq;
@@ -421,12 +423,15 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
421
423
  let mut entry_points = vec![entry_point.node];
422
424
 
423
425
  // Traverse upper layer finding the best match on each one
426
+ let t = Instant::now();
424
427
  while crnt_layer != 0 {
425
428
  let layer = hnsw.get_layer(crnt_layer);
426
429
  let layer_res = self.layer_search(query, layer, 1, &entry_points);
427
430
  entry_points = layer_res.map(|(addr, _)| addr).collect();
428
431
  crnt_layer -= 1;
429
432
  }
433
+ let time = t.elapsed();
434
+ trace!(?time, "HNSW search: upper layers");
430
435
 
431
436
  // If using RabitQ, request more vectors to rerank later
432
437
  let original_query = if let SearchVector::RabitQ(rq) = query {
@@ -441,15 +446,22 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
441
446
  };
442
447
 
443
448
  // Find the best k nodes in the last layer
449
+ let t = Instant::now();
444
450
  let layer = hnsw.get_layer(crnt_layer);
445
451
  let neighbours = self.layer_search(query, layer, last_layer_k, &entry_points);
452
+ let time = t.elapsed();
453
+ trace!(?time, "HNSW search: last layer");
446
454
 
447
455
  let entry_points = if let Some(query) = original_query {
448
456
  // If using RabitQ, rerank using the original vectors
449
- rabitq::rerank_top(neighbours.collect(), k_neighbours, self.retriever, query)
457
+ let t = Instant::now();
458
+ let reranked = rabitq::rerank_top(neighbours.collect(), k_neighbours, self.retriever, query)
450
459
  .into_iter()
451
460
  .map(|Reverse(Cnx(addr, _))| addr)
452
- .collect()
461
+ .collect();
462
+ let time = t.elapsed();
463
+ trace!(?time, "HNSW search: reranking");
464
+ reranked
453
465
  } else {
454
466
  neighbours.map(|(addr, _)| addr).collect()
455
467
  };
@@ -463,6 +475,7 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
463
475
  let layer_zero = hnsw.get_layer(0);
464
476
 
465
477
  // Find k nodes that match the filter in the last layer
478
+ let t = Instant::now();
466
479
  let mut filtered_result = self.closest_up_nodes(
467
480
  entry_points,
468
481
  original_query.unwrap_or(query),
@@ -470,6 +483,8 @@ impl<'a, DR: DataRetriever> HnswOps<'a, DR> {
470
483
  k_neighbours,
471
484
  filter,
472
485
  );
486
+ let time = t.elapsed();
487
+ trace!(?time, "HNSW search: closest nodes");
473
488
 
474
489
  // order may be lost
475
490
  filtered_result.sort_by(|a, b| b.1.total_cmp(&a.1));
@@ -58,10 +58,6 @@ impl<'a> ResourceWrapper<'a> {
58
58
  }
59
59
  }
60
60
 
61
- pub fn id(&self) -> &String {
62
- &self.resource.shard_id
63
- }
64
-
65
61
  pub fn labels(&self) -> &[String] {
66
62
  &self.resource.labels
67
63
  }
@@ -108,10 +104,9 @@ pub fn index_resource(
108
104
  ) -> anyhow::Result<Option<VectorSegmentMetadata>> {
109
105
  let time = Instant::now();
110
106
 
111
- let id = resource.id();
112
- debug!("{id:?} - Updating main index");
107
+ debug!("Updating main index");
113
108
  let v = time.elapsed().as_millis();
114
- debug!("{id:?} - Creating elements for the main index: starts {v} ms");
109
+ debug!("Creating elements for the main index: starts {v} ms");
115
110
 
116
111
  let mut elems = Vec::new();
117
112
  let normalize_vectors = config.normalize_vectors;
@@ -142,10 +137,10 @@ pub fn index_resource(
142
137
  }
143
138
  }
144
139
  let v = time.elapsed().as_millis();
145
- debug!("{id:?} - Creating elements for the main index: ends {v} ms");
140
+ debug!("Creating elements for the main index: ends {v} ms");
146
141
 
147
142
  let v = time.elapsed().as_millis();
148
- debug!("{id:?} - Main index set resource: starts {v} ms");
143
+ debug!("Main index set resource: starts {v} ms");
149
144
 
150
145
  if elems.is_empty() {
151
146
  return Ok(None);
@@ -160,7 +155,7 @@ pub fn index_resource(
160
155
  let segment = segment::create(output_path, elems, config, tags)?;
161
156
 
162
157
  let v = time.elapsed().as_millis();
163
- debug!("{id:?} - Main index set resource: ends {v} ms");
158
+ debug!("Main index set resource: ends {v} ms");
164
159
 
165
160
  Ok(Some(segment.into_metadata()))
166
161
  }
@@ -22,8 +22,6 @@ use nidx_types::query_language::BooleanExpression;
22
22
 
23
23
  #[derive(Clone, Default)]
24
24
  pub struct VectorSearchRequest {
25
- /// Shard ID
26
- pub id: String,
27
25
  /// Embedded vector search.
28
26
  pub vector: Vec<f32>,
29
27
  /// How many results are in this page.
@@ -290,8 +290,6 @@ impl Searcher {
290
290
  ) -> anyhow::Result<VectorSearchResponse> {
291
291
  let time = Instant::now();
292
292
 
293
- let id = Some(&request.id);
294
-
295
293
  let mut formula = Formula::new();
296
294
 
297
295
  if let PrefilterResult::Some(valid_fields) = prefilter {
@@ -313,7 +311,7 @@ impl Searcher {
313
311
  }
314
312
 
315
313
  let v = time.elapsed().as_millis();
316
- debug!("{id:?} - Searching: starts at {v} ms");
314
+ debug!("Searching: starts at {v} ms");
317
315
  let search_request = &SearchRequest { request, formula };
318
316
  let result = match self.config.vector_cardinality {
319
317
  VectorCardinality::Single => self._search(search_request, &request.segment_filtering_formula)?,
@@ -321,9 +319,9 @@ impl Searcher {
321
319
  };
322
320
 
323
321
  let v = time.elapsed().as_millis();
324
- debug!("{id:?} - Searching: ends at {v} ms");
322
+ debug!("Searching: ends at {v} ms");
325
323
 
326
- debug!("{id:?} - Creating results: starts at {v} ms");
324
+ debug!("Creating results: starts at {v} ms");
327
325
 
328
326
  let documents = result
329
327
  .into_iter()
@@ -331,10 +329,10 @@ impl Searcher {
331
329
  .collect::<Vec<_>>();
332
330
  let v = time.elapsed().as_millis();
333
331
 
334
- debug!("{id:?} - Creating results: ends at {v} ms");
332
+ debug!("Creating results: ends at {v} ms");
335
333
 
336
334
  let took = time.elapsed().as_secs_f64();
337
- debug!("{id:?} - Ending at {took} ms");
335
+ debug!("Ending at {took} ms");
338
336
 
339
337
  Ok(VectorSearchResponse {
340
338
  documents,
@@ -479,7 +477,6 @@ mod tests {
479
477
 
480
478
  let searcher = Searcher::open(vec![segment::open(segment, &vsc)?], vsc).unwrap();
481
479
  let request = VectorSearchRequest {
482
- id: "".to_string(),
483
480
  vector_set: "".to_string(),
484
481
  vector: vec![4.0, 6.0, 7.0],
485
482
  result_per_page: 20,
@@ -575,7 +572,6 @@ mod tests {
575
572
 
576
573
  let searcher = Searcher::open(vec![segment::open(segment, &vsc)?], vsc).unwrap();
577
574
  let request = VectorSearchRequest {
578
- id: "".to_string(),
579
575
  vector_set: "".to_string(),
580
576
  vector: vec![4.0, 6.0, 7.0],
581
577
  result_per_page: 20,
@@ -586,7 +582,6 @@ mod tests {
586
582
  assert_eq!(result.documents.len(), 4);
587
583
 
588
584
  let request = VectorSearchRequest {
589
- id: "".to_string(),
590
585
  vector_set: "".to_string(),
591
586
  vector: vec![4.0, 6.0, 7.0],
592
587
  result_per_page: 20,
@@ -598,7 +593,6 @@ mod tests {
598
593
 
599
594
  // Check that min_score works
600
595
  let request = VectorSearchRequest {
601
- id: "".to_string(),
602
596
  vector_set: "".to_string(),
603
597
  vector: vec![4.0, 6.0, 7.0],
604
598
  result_per_page: 20,
@@ -610,7 +604,6 @@ mod tests {
610
604
  assert_eq!(result.documents.len(), 0);
611
605
 
612
606
  let bad_request = VectorSearchRequest {
613
- id: "".to_string(),
614
607
  vector_set: "".to_string(),
615
608
  vector: vec![4.0, 6.0],
616
609
  result_per_page: 20,
@@ -685,7 +678,6 @@ mod tests {
685
678
 
686
679
  let searcher = Searcher::open(vec![segment::open(segment, &vsc)?], vsc).unwrap();
687
680
  let request = VectorSearchRequest {
688
- id: "".to_string(),
689
681
  vector_set: "".to_string(),
690
682
  vector: vec![4.0, 6.0, 7.0],
691
683
  result_per_page: 20,
@@ -696,7 +688,6 @@ mod tests {
696
688
  assert_eq!(result.documents.len(), 2);
697
689
 
698
690
  let request = VectorSearchRequest {
699
- id: "".to_string(),
700
691
  vector_set: "".to_string(),
701
692
  vector: vec![4.0, 6.0, 7.0],
702
693
  result_per_page: 20,
@@ -37,6 +37,8 @@ use std::fs::File;
37
37
  use std::io;
38
38
  use std::iter::empty;
39
39
  use std::path::Path;
40
+ use std::time::Instant;
41
+ use tracing::{debug, trace};
40
42
 
41
43
  /// How much expensive is to find a node via HNSW compared to a simple brute force scan
42
44
  const HNSW_COST_FACTOR: usize = 100;
@@ -498,7 +500,7 @@ impl OpenSegment {
498
500
  query: &[f32],
499
501
  filter: &Formula,
500
502
  with_duplicates: bool,
501
- results: usize,
503
+ top_k: usize,
502
504
  config: &VectorConfig,
503
505
  min_score: f32,
504
506
  ) -> Box<dyn Iterator<Item = ScoredVector<'a>> + '_> {
@@ -519,35 +521,48 @@ impl OpenSegment {
519
521
  // If we have no filters, just the deletions
520
522
  let bitset = filter_bitset.as_ref().unwrap_or(&self.alive_bitset);
521
523
 
522
- let count = bitset.iter().count();
523
- if count == 0 {
524
+ let matching = bitset.iter().count();
525
+ if matching == 0 {
524
526
  return Box::new(empty());
525
527
  }
526
- let expected_traversal_scan = results * self.metadata.records / count;
528
+ let expected_traversal_scan = top_k * self.metadata.records / matching;
527
529
 
528
- if count < expected_traversal_scan * HNSW_COST_FACTOR {
529
- self.brute_force_search(bitset, results, retriever, encoded_query, &raw_query)
530
+ let t = Instant::now();
531
+ let method;
532
+ let results = if matching < expected_traversal_scan * HNSW_COST_FACTOR {
533
+ method = "brute force";
534
+ self.brute_force_search(bitset, top_k, retriever, encoded_query, &raw_query)
530
535
  } else {
536
+ method = "hnsw";
531
537
  let ops = HnswOps::new(&retriever, true);
532
- let neighbours = ops.search(encoded_query, self.index.as_ref(), results, bitset, with_duplicates);
538
+ let neighbours = ops.search(encoded_query, self.index.as_ref(), top_k, bitset, with_duplicates);
533
539
  Box::new(
534
540
  neighbours
535
541
  .into_iter()
536
542
  .map(|(address, dist)| ScoredVector::new(address, self.data_store.as_ref(), dist))
537
- .take(results),
543
+ .take(top_k),
538
544
  )
539
- }
545
+ };
546
+
547
+ let time = t.elapsed();
548
+ let segment_path = &self.metadata.path;
549
+ let records = self.metadata.records;
550
+ debug!(?time, ?segment_path, records, matching, "Segment search using {method}");
551
+
552
+ results
540
553
  }
541
554
 
542
555
  fn brute_force_search<'a, DS: DataStore>(
543
556
  &'a self,
544
557
  bitset: &FilterBitSet,
545
- results: usize,
558
+ top_k: usize,
546
559
  retriever: Retriever<'a, DS>,
547
560
  encoded_query: &SearchVector,
548
561
  raw_query: &SearchVector,
549
562
  ) -> Box<dyn Iterator<Item = ScoredVector<'a>> + '_> {
550
563
  let mut scored_results = Vec::new();
564
+
565
+ let t = Instant::now();
551
566
  for paragraph_addr in bitset.iter() {
552
567
  let paragraph = retriever.data_store.get_paragraph(paragraph_addr);
553
568
 
@@ -565,11 +580,14 @@ impl OpenSegment {
565
580
  scored_results.push(best_vector_score);
566
581
  }
567
582
  }
583
+ let time = t.elapsed();
584
+ trace!(?time, "Brute force search: retrieve");
568
585
 
569
- if matches!(encoded_query, SearchVector::RabitQ(_)) {
586
+ let t = Instant::now();
587
+ let results: Box<dyn Iterator<Item = _>> = if matches!(encoded_query, SearchVector::RabitQ(_)) {
570
588
  // If using RabitQ, rerank top results using the raw vectors
571
589
  Box::new(
572
- rabitq::rerank_top(scored_results, results, &retriever, raw_query)
590
+ rabitq::rerank_top(scored_results, top_k, &retriever, raw_query)
573
591
  .into_iter()
574
592
  .map(|Reverse(Cnx(addr, score))| ScoredVector::new(addr, self.data_store.as_ref(), score)),
575
593
  )
@@ -580,9 +598,13 @@ impl OpenSegment {
580
598
  scored_results
581
599
  .into_iter()
582
600
  .map(|a| ScoredVector::new(a.0, self.data_store.as_ref(), a.1.score))
583
- .take(results),
601
+ .take(top_k),
584
602
  )
585
- }
603
+ };
604
+ let time = t.elapsed();
605
+ trace!(?time, "Brute force search: rerank");
606
+
607
+ results
586
608
  }
587
609
  }
588
610
 
@@ -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.0.post582"
16
+ version = "6.9.1.post587"
17
17
 
18
18
  [project.urls]
19
19
  Homepage = "https://nuclia.com"
@@ -112,7 +112,6 @@ fn compute_paragraphs_request(search_request: &SearchRequest) -> anyhow::Result<
112
112
  with_duplicates: search_request.with_duplicates,
113
113
  only_faceted: search_request.only_faceted,
114
114
  advanced_query: search_request.advanced_query.clone(),
115
- id: String::default(),
116
115
  min_score: search_request.min_score_bm25,
117
116
  security: search_request.security.clone(),
118
117
  filtering_formula: search_request
@@ -130,7 +129,6 @@ fn compute_texts_request(search_request: &SearchRequest) -> Option<DocumentSearc
130
129
  }
131
130
 
132
131
  Some(DocumentSearchRequest {
133
- id: search_request.shard.clone(),
134
132
  body: search_request.body.clone(),
135
133
  order: search_request.order.clone(),
136
134
  faceted: search_request.faceted.clone(),
@@ -153,7 +151,6 @@ fn compute_vectors_request(search_request: &SearchRequest) -> anyhow::Result<Opt
153
151
  .and_then(|f| extract_label_filters(f, SEGMENT_TAGS));
154
152
 
155
153
  Ok(Some(VectorSearchRequest {
156
- id: search_request.shard.clone(),
157
154
  vector_set: search_request.vectorset.clone(),
158
155
  vector: search_request.vector.clone(),
159
156
  result_per_page: search_request.result_per_page,