nidx-binding 6.9.4.post643__tar.gz → 6.9.4.post652__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 (266) hide show
  1. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/PKG-INFO +1 -1
  2. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/reader.rs +4 -24
  3. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/schema.rs +7 -0
  4. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/search_response.rs +15 -9
  5. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/nodereader.proto +9 -2
  6. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/pyproject.toml +1 -1
  7. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/reader.rs +26 -26
  8. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/schema.rs +7 -0
  9. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/pyproject.toml +1 -1
  10. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.config/nextest.toml +0 -0
  11. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
  12. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
  13. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
  14. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
  15. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
  16. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
  17. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
  18. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
  19. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
  20. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
  21. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
  22. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
  23. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
  24. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
  25. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
  26. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
  27. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
  28. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
  29. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
  30. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
  31. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
  32. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
  33. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
  34. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
  35. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
  36. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
  37. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
  38. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
  39. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
  40. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
  41. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
  42. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
  43. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
  44. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
  45. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
  46. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
  47. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
  48. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
  49. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
  50. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
  51. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
  52. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
  53. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
  54. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
  55. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
  56. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
  57. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
  58. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
  59. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
  60. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
  61. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
  62. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
  63. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
  64. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
  65. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
  66. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
  67. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
  68. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
  69. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
  70. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/Cargo.lock +0 -0
  71. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/Cargo.toml +0 -0
  72. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/README.md +0 -0
  73. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/migrations/20241007163501_initial.sql +0 -0
  74. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/migrations/20241211120039_merge_job_priority.sql +0 -0
  75. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/migrations/20241211121159_basic_indexes.sql +0 -0
  76. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/migrations/20241212151105_check_segment_records.sql +0 -0
  77. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/migrations/20250110145554_in_flight_messages.sql +0 -0
  78. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_binding/Cargo.toml +0 -0
  79. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_binding/src/lib.rs +0 -0
  80. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/Cargo.toml +0 -0
  81. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/fuzzy_query.rs +0 -0
  82. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/lib.rs +0 -0
  83. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/query_io.rs +0 -0
  84. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -0
  85. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -0
  86. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/query_parser/stop_words.rs +0 -0
  87. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/query_parser/tokenizer.rs +0 -0
  88. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/query_parser.rs +0 -0
  89. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/request_types.rs +0 -0
  90. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/resource_indexer.rs +0 -0
  91. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/search_query.rs +0 -0
  92. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/src/set_query.rs +0 -0
  93. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/README.md +0 -0
  94. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/ar.json +0 -0
  95. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/az.json +0 -0
  96. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/bn.json +0 -0
  97. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/ca.json +0 -0
  98. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/ch.json +0 -0
  99. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/da.json +0 -0
  100. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/de.json +0 -0
  101. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/el.json +0 -0
  102. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/en.json +0 -0
  103. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/es.json +0 -0
  104. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/eu.json +0 -0
  105. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/extract.py +0 -0
  106. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/fi.json +0 -0
  107. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/fr.json +0 -0
  108. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/he.json +0 -0
  109. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/hu.json +0 -0
  110. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/id.json +0 -0
  111. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/it.json +0 -0
  112. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/kk.json +0 -0
  113. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/ne.json +0 -0
  114. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/nl.json +0 -0
  115. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/no.json +0 -0
  116. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/pt.json +0 -0
  117. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/ro.json +0 -0
  118. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/ru.json +0 -0
  119. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/sl.json +0 -0
  120. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/sv.json +0 -0
  121. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/tg.json +0 -0
  122. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/stop_words/tr.json +0 -0
  123. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/tests/common/mod.rs +0 -0
  124. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_paragraph/tests/reader.rs +0 -0
  125. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/Cargo.toml +0 -0
  126. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/build.py +0 -0
  127. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/build.rs +0 -0
  128. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/nidx.proto +0 -0
  129. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/noderesources.proto +0 -0
  130. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/nodewriter.proto +0 -0
  131. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_protos/src/lib.rs +0 -0
  132. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/Cargo.toml +0 -0
  133. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/graph_collector.rs +0 -0
  134. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/graph_query_parser.rs +0 -0
  135. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/io_maps.rs +0 -0
  136. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/lib.rs +0 -0
  137. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/reader.rs +0 -0
  138. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/resource_indexer.rs +0 -0
  139. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/schema.rs +0 -0
  140. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/src/top_unique_n.rs +0 -0
  141. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/tests/common/mod.rs +0 -0
  142. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
  143. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/tests/test_graph_search.rs +0 -0
  144. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_relation/tests/test_writer.rs +0 -0
  145. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_tantivy/Cargo.toml +0 -0
  146. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_tantivy/src/index_reader.rs +0 -0
  147. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_tantivy/src/lib.rs +0 -0
  148. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_tantivy/src/utils.rs +0 -0
  149. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_tests/Cargo.toml +0 -0
  150. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_tests/src/graph.rs +0 -0
  151. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_tests/src/lib.rs +0 -0
  152. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/Cargo.toml +0 -0
  153. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/lib.rs +0 -0
  154. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/prefilter.rs +0 -0
  155. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/query_io.rs +0 -0
  156. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/request_types.rs +0 -0
  157. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/resource_indexer.rs +0 -0
  158. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/src/search_query.rs +0 -0
  159. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/tests/common/mod.rs +0 -0
  160. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/tests/test_deletions.rs +0 -0
  161. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/tests/test_flow.rs +0 -0
  162. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/tests/test_search.rs +0 -0
  163. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_text/tests/test_streaming.rs +0 -0
  164. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_types/Cargo.toml +0 -0
  165. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_types/src/lib.rs +0 -0
  166. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_types/src/prefilter.rs +0 -0
  167. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_types/src/query_language.rs +0 -0
  168. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/Cargo.toml +0 -0
  169. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/config.rs +0 -0
  170. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v1/node.rs +0 -0
  171. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v1/store.rs +0 -0
  172. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v1/trie.rs +0 -0
  173. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
  174. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v1.rs +0 -0
  175. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
  176. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v2/quant_vector_store.rs +0 -0
  177. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
  178. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store/v2.rs +0 -0
  179. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_store.rs +0 -0
  180. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/data_types.rs +0 -0
  181. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/formula.rs +0 -0
  182. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw/build.rs +0 -0
  183. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw/disk/v1.rs +0 -0
  184. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw/disk/v2.rs +0 -0
  185. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw/disk.rs +0 -0
  186. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw/params.rs +0 -0
  187. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw/ram_hnsw.rs +0 -0
  188. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw/search.rs +0 -0
  189. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/hnsw.rs +0 -0
  190. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/indexer.rs +0 -0
  191. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
  192. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/inverted_index/map.rs +0 -0
  193. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/inverted_index.rs +0 -0
  194. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/lib.rs +0 -0
  195. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/multivector.rs +0 -0
  196. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/query_io.rs +0 -0
  197. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/request_types.rs +0 -0
  198. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/searcher.rs +0 -0
  199. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/segment/tests.rs +0 -0
  200. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/segment.rs +0 -0
  201. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/utils.rs +0 -0
  202. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
  203. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/vector_types/mod.rs +0 -0
  204. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/src/vector_types/rabitq.rs +0 -0
  205. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/tests/common/mod.rs +0 -0
  206. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/tests/test_basic_search.rs +0 -0
  207. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/tests/test_hidden.rs +0 -0
  208. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/nidx_vector/tests/test_maxsim.rs +0 -0
  209. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/api/grpc.rs +0 -0
  210. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/api/shards.rs +0 -0
  211. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/api.rs +0 -0
  212. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/control.rs +0 -0
  213. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/errors.rs +0 -0
  214. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/grpc_server.rs +0 -0
  215. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/import_export.rs +0 -0
  216. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/indexer.rs +0 -0
  217. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/lib.rs +0 -0
  218. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/main.rs +0 -0
  219. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metadata/deletion.rs +0 -0
  220. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metadata/index.rs +0 -0
  221. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metadata/index_request.rs +0 -0
  222. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metadata/merge_job.rs +0 -0
  223. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metadata/segment.rs +0 -0
  224. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metadata/shard.rs +0 -0
  225. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metadata.rs +0 -0
  226. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/metrics.rs +0 -0
  227. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/scheduler/audit_task.rs +0 -0
  228. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/scheduler/log_merge.rs +0 -0
  229. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/scheduler/merge_task.rs +0 -0
  230. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/scheduler/metrics_task.rs +0 -0
  231. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/scheduler/purge_tasks.rs +0 -0
  232. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/scheduler/vector_merge.rs +0 -0
  233. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/scheduler.rs +0 -0
  234. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/grpc.rs +0 -0
  235. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/index_cache.rs +0 -0
  236. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/query_language.rs +0 -0
  237. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/query_planner.rs +0 -0
  238. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/shard_search.rs +0 -0
  239. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/shard_selector.rs +0 -0
  240. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/shard_suggest.rs +0 -0
  241. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/streams.rs +0 -0
  242. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher/sync.rs +0 -0
  243. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/searcher.rs +0 -0
  244. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/segment_store.rs +0 -0
  245. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/settings.rs +0 -0
  246. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/telemetry/duration_layer.rs +0 -0
  247. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/telemetry/log_format.rs +0 -0
  248. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/telemetry/middleware.rs +0 -0
  249. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/telemetry.rs +0 -0
  250. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/tool.rs +0 -0
  251. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/utilization_tracker.rs +0 -0
  252. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/src/worker.rs +0 -0
  253. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/common/mod.rs +0 -0
  254. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/common/services.rs +0 -0
  255. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_date_range_search.rs +0 -0
  256. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_search_filtering.rs +0 -0
  257. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_search_relations.rs +0 -0
  258. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_search_sorting.rs +0 -0
  259. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_searcher_cluster.rs +0 -0
  260. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_security_search.rs +0 -0
  261. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_shards.rs +0 -0
  262. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_shards_api.rs +0 -0
  263. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_suggest.rs +0 -0
  264. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_synced_searcher.rs +0 -0
  265. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/tests/test_vector_normalization.rs +0 -0
  266. {nidx_binding-6.9.4.post643 → nidx_binding-6.9.4.post652}/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.4.post643
3
+ Version: 6.9.4.post652
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -138,30 +138,6 @@ impl ParagraphReaderService {
138
138
  debug!("Fallback fuzzy query took {}µs", time_tracker.checkpoint().as_micros());
139
139
  }
140
140
 
141
- let total = response.results.len() as f32;
142
- let mut some_below_min_score: bool = false;
143
- let response_results = std::mem::take(&mut response.results);
144
-
145
- for (i, mut r) in response_results.into_iter().enumerate() {
146
- match &mut r.score {
147
- None => continue,
148
- Some(sc) if sc.bm25 < request.min_score => {
149
- // We can break here because the results are sorted by score
150
- some_below_min_score = true;
151
- break;
152
- }
153
- Some(sc) => {
154
- sc.booster = total - (i as f32);
155
- response.results.push(r);
156
- }
157
- }
158
- }
159
-
160
- if some_below_min_score {
161
- // We set next_page to false so that the client stops asking for more results
162
- response.next_page = false;
163
- }
164
-
165
141
  debug!("Result processing took {}µs", time_tracker.checkpoint().as_micros());
166
142
  debug!("Paragraph search took {}µs", time_tracker.elapsed().as_micros());
167
143
 
@@ -298,6 +274,7 @@ impl Searcher<'_> {
298
274
  let extra_result = self.results + 1;
299
275
  match self.request.order.clone() {
300
276
  Some(order) => {
277
+ let sort_field = order.sort_by();
301
278
  let custom_collector = self.custom_order_collector(order, extra_result);
302
279
  let collector = &(Count, custom_collector);
303
280
  let (total, top_docs) = searcher.search(&query, collector)?;
@@ -311,6 +288,7 @@ impl Searcher<'_> {
311
288
  query: self.text,
312
289
  results_per_page: self.results as i32,
313
290
  searcher,
291
+ sort_field,
314
292
  }))
315
293
  }
316
294
  None => {
@@ -336,6 +314,7 @@ impl Searcher<'_> {
336
314
 
337
315
  match self.request.order.clone() {
338
316
  Some(order) => {
317
+ let sort_field = order.sort_by();
339
318
  let custom_collector = self.custom_order_collector(order, extra_result);
340
319
  let collector = &(Count, facet_collector, custom_collector);
341
320
  let (total, facets_count, top_docs) = searcher.search(&query, collector)?;
@@ -349,6 +328,7 @@ impl Searcher<'_> {
349
328
  query: self.text,
350
329
  results_per_page: self.results as i32,
351
330
  searcher,
331
+ sort_field,
352
332
  }))
353
333
  }
354
334
  None => {
@@ -63,6 +63,13 @@ pub fn timestamp_to_datetime_utc(timestamp: &nidx_protos::prost_types::Timestamp
63
63
  DateTime::from_timestamp_secs(timestamp.seconds)
64
64
  }
65
65
 
66
+ pub fn datetime_utc_to_timestamp(tantivy: &DateTime) -> nidx_protos::prost_types::Timestamp {
67
+ nidx_protos::prost_types::Timestamp {
68
+ seconds: tantivy.into_timestamp_secs(),
69
+ nanos: 0,
70
+ }
71
+ }
72
+
66
73
  impl ParagraphSchema {
67
74
  pub fn new() -> ParagraphSchema {
68
75
  ParagraphSchema::default()
@@ -20,6 +20,8 @@
20
20
  use std::collections::HashMap;
21
21
 
22
22
  use lazy_static::lazy_static;
23
+ use nidx_protos::order_by::OrderField;
24
+ use nidx_protos::paragraph_result::SortValue;
23
25
  use nidx_protos::{FacetResult, FacetResults, ParagraphResult, ParagraphSearchResponse, ResultScore};
24
26
  use nidx_tantivy::utils::decode_facet;
25
27
  use tantivy::collector::FacetCounts;
@@ -29,6 +31,7 @@ use tantivy::{DateTime, DocAddress, TantivyDocument};
29
31
  use tracing::*;
30
32
 
31
33
  use crate::reader::ParagraphReaderService;
34
+ use crate::schema::datetime_utc_to_timestamp;
32
35
  use crate::search_query::TermCollector;
33
36
 
34
37
  pub fn extract_labels<'a>(facets_iterator: impl Iterator<Item = CompactDocValue<'a>>) -> Vec<String> {
@@ -101,6 +104,7 @@ pub struct SearchIntResponse<'a> {
101
104
  pub results_per_page: i32,
102
105
  pub termc: TermCollector,
103
106
  pub searcher: tantivy::Searcher,
107
+ pub sort_field: OrderField,
104
108
  }
105
109
 
106
110
  pub struct SearchFacetsResponse<'a> {
@@ -133,13 +137,9 @@ impl From<SearchIntResponse<'_>> for ParagraphSearchResponse {
133
137
  let no_results = std::cmp::min(obtained, requested);
134
138
  let mut results: Vec<ParagraphResult> = Vec::with_capacity(no_results);
135
139
  let searcher = response.searcher;
136
- for (_, doc_address) in response.top_docs.into_iter().take(no_results) {
140
+ for (score, doc_address) in response.top_docs.into_iter().take(no_results) {
137
141
  match searcher.doc::<TantivyDocument>(doc_address) {
138
142
  Ok(doc) => {
139
- let score = ResultScore {
140
- bm25: 0.0,
141
- booster: 0.0,
142
- };
143
143
  let schema = &response.text_service.schema;
144
144
  let uuid = doc
145
145
  .get_first(schema.uuid)
@@ -179,6 +179,8 @@ impl From<SearchIntResponse<'_>> for ParagraphSearchResponse {
179
179
  .unwrap()
180
180
  .to_string();
181
181
 
182
+ let sort_value = Some(SortValue::Date(datetime_utc_to_timestamp(&score)));
183
+
182
184
  let index = doc.get_first(schema.index).unwrap().as_u64().unwrap();
183
185
  let mut terms: Vec<_> = response.termc.get_fterms(doc_address.doc_id).into_iter().collect();
184
186
  terms.sort();
@@ -192,7 +194,7 @@ impl From<SearchIntResponse<'_>> for ParagraphSearchResponse {
192
194
  split,
193
195
  index,
194
196
  matches: terms,
195
- score: Some(score),
197
+ sort_value,
196
198
  metadata: schema.metadata(&doc),
197
199
  };
198
200
 
@@ -223,18 +225,22 @@ impl From<SearchIntResponse<'_>> for ParagraphSearchResponse {
223
225
  impl From<SearchBm25Response<'_>> for ParagraphSearchResponse {
224
226
  fn from(response: SearchBm25Response) -> Self {
225
227
  let total = response.total as i32;
228
+ let min_score = response.min_score;
226
229
  let obtained = response.top_docs.len();
227
230
  let requested = response.results_per_page as usize;
228
231
  let next_page = obtained > requested;
229
232
  let no_results = std::cmp::min(obtained, requested);
230
233
  let mut results: Vec<ParagraphResult> = Vec::with_capacity(no_results);
231
234
  let searcher = response.searcher;
232
- for (score, doc_address) in response.top_docs.into_iter().take(no_results) {
235
+ for (i, (score, doc_address)) in response.top_docs.into_iter().take(no_results).enumerate() {
236
+ if score < min_score {
237
+ break;
238
+ }
233
239
  match searcher.doc::<TantivyDocument>(doc_address) {
234
240
  Ok(doc) => {
235
241
  let score = ResultScore {
236
242
  bm25: score,
237
- booster: 0.0,
243
+ booster: (response.total - i) as f32,
238
244
  };
239
245
  let schema = &response.text_service.schema;
240
246
  let uuid = doc
@@ -281,7 +287,7 @@ impl From<SearchBm25Response<'_>> for ParagraphSearchResponse {
281
287
  split,
282
288
  index,
283
289
  paragraph,
284
- score: Some(score),
290
+ sort_value: Some(SortValue::Score(score)),
285
291
  start: start_pos,
286
292
  end: end_pos,
287
293
  matches: terms,
@@ -54,7 +54,10 @@ message ResultScore {
54
54
 
55
55
  message DocumentResult {
56
56
  string uuid = 1;
57
- ResultScore score = 3;
57
+ oneof sort_value {
58
+ ResultScore score = 3;
59
+ google.protobuf.Timestamp date = 6;
60
+ }
58
61
  string field = 4;
59
62
  repeated string labels = 5;
60
63
  }
@@ -86,7 +89,11 @@ message ParagraphResult {
86
89
  string paragraph = 6;
87
90
  string split = 7;
88
91
  uint64 index = 8;
89
- ResultScore score = 9;
92
+ oneof sort_value {
93
+ ResultScore score = 9;
94
+ google.protobuf.Timestamp date = 13;
95
+ }
96
+
90
97
  repeated string matches = 10;
91
98
 
92
99
  // Metadata that can't be searched with but is returned on search results
@@ -10,7 +10,7 @@ build-backend = "pdm.backend"
10
10
 
11
11
  [project]
12
12
  name = "nidx_protos"
13
- version = "6.9.4.post643"
13
+ version = "6.9.4.post652"
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" }]
@@ -21,13 +21,14 @@ use std::collections::HashMap;
21
21
  use std::fmt::Debug;
22
22
  use std::time::*;
23
23
 
24
- use crate::schema::decode_field_id;
24
+ use crate::schema::{datetime_utc_to_timestamp, decode_field_id};
25
25
  use crate::search_query::filter_to_query;
26
26
  use crate::{DocumentSearchRequest, prefilter::*};
27
27
 
28
28
  use super::schema::TextSchema;
29
29
  use super::search_query;
30
30
  use itertools::Itertools;
31
+ use nidx_protos::document_result::SortValue;
31
32
  use nidx_protos::order_by::{OrderField, OrderType};
32
33
  use nidx_protos::{
33
34
  DocumentItem, DocumentResult, DocumentSearchResponse, FacetResult, FacetResults, OrderBy, ResultScore,
@@ -39,8 +40,8 @@ use tantivy::collector::{Collector, Count, FacetCollector, FacetCounts, SegmentC
39
40
  use tantivy::columnar::Column;
40
41
  use tantivy::query::{AllQuery, BooleanQuery, Query, QueryParser, TermQuery};
41
42
  use tantivy::schema::Value;
42
- use tantivy::schema::*;
43
- use tantivy::{DocAddress, Index, IndexReader, Searcher};
43
+ use tantivy::{DateTime, DocAddress, Index, IndexReader, Searcher};
44
+ use tantivy::{Order, schema::*};
44
45
  use tracing::*;
45
46
 
46
47
  fn facet_count(facet: &str, facets_count: &FacetCounts) -> Vec<FacetResult> {
@@ -234,36 +235,33 @@ impl TextReaderService {
234
235
  }
235
236
 
236
237
  impl TextReaderService {
237
- fn custom_order_collector(&self, order: OrderBy, limit: usize) -> impl Collector<Fruit = Vec<(i64, DocAddress)>> {
238
- use tantivy::{DocId, SegmentReader};
239
- let sorter = match order.r#type() {
240
- OrderType::Desc => |t: i64| t,
241
- OrderType::Asc => |t: i64| -t,
238
+ fn custom_order_collector(
239
+ &self,
240
+ order: OrderBy,
241
+ limit: usize,
242
+ ) -> impl Collector<Fruit = Vec<(DateTime, DocAddress)>> {
243
+ let order_field = match order.sort_by() {
244
+ OrderField::Created => "created",
245
+ OrderField::Modified => "modified",
242
246
  };
243
- TopDocs::with_limit(limit).custom_score(move |segment_reader: &SegmentReader| {
244
- let reader = match order.sort_by() {
245
- OrderField::Created => segment_reader.fast_fields().date("created").unwrap(),
246
- OrderField::Modified => segment_reader.fast_fields().date("modified").unwrap(),
247
- };
248
- move |doc: DocId| sorter(reader.values_for_doc(doc).next().unwrap().into_timestamp_secs())
249
- })
247
+ let order_direction = match order.r#type() {
248
+ OrderType::Desc => Order::Desc,
249
+ OrderType::Asc => Order::Asc,
250
+ };
251
+ TopDocs::with_limit(limit).order_by_fast_field(order_field, order_direction)
250
252
  }
251
253
 
252
- fn convert_int_order(&self, response: SearchResponse<i64>, searcher: &Searcher) -> DocumentSearchResponse {
254
+ fn convert_int_order(&self, response: SearchResponse<DateTime>, searcher: &Searcher) -> DocumentSearchResponse {
253
255
  let total = response.total as i32;
254
256
  let retrieved_results = response.results_per_page;
255
257
  let next_page = total > retrieved_results;
256
258
  let results_per_page = response.results_per_page as usize;
257
- let result_stream = response.top_docs.into_iter().take(results_per_page).enumerate();
259
+ let result_stream = response.top_docs.into_iter().take(results_per_page);
258
260
  let mut results = Vec::with_capacity(results_per_page);
259
261
 
260
- for (id, (_, doc_address)) in result_stream {
262
+ for (score, doc_address) in result_stream {
261
263
  match searcher.doc::<TantivyDocument>(doc_address) {
262
264
  Ok(doc) => {
263
- let score = Some(ResultScore {
264
- bm25: 0.0,
265
- booster: id as f32,
266
- });
267
265
  let uuid = String::from_utf8(
268
266
  doc.get_first(self.schema.uuid)
269
267
  .expect("document doesn't appear to have uuid.")
@@ -287,10 +285,12 @@ impl TextReaderService {
287
285
  .filter(|x| x.starts_with("/l/"))
288
286
  .collect_vec();
289
287
 
288
+ let sort_value = Some(SortValue::Date(datetime_utc_to_timestamp(&score)));
289
+
290
290
  let result = DocumentResult {
291
291
  uuid,
292
292
  field,
293
- score,
293
+ sort_value,
294
294
  labels,
295
295
  };
296
296
  results.push(result);
@@ -330,10 +330,10 @@ impl TextReaderService {
330
330
  }
331
331
  match searcher.doc::<TantivyDocument>(doc_address) {
332
332
  Ok(doc) => {
333
- let score = Some(ResultScore {
333
+ let score = ResultScore {
334
334
  bm25: score,
335
335
  booster: id as f32,
336
- });
336
+ };
337
337
  let uuid = String::from_utf8(
338
338
  doc.get_first(self.schema.uuid)
339
339
  .expect("document doesn't appear to have uuid.")
@@ -359,7 +359,7 @@ impl TextReaderService {
359
359
  let result = DocumentResult {
360
360
  uuid,
361
361
  field,
362
- score,
362
+ sort_value: Some(SortValue::Score(score)),
363
363
  labels,
364
364
  };
365
365
  results.push(result);
@@ -54,6 +54,13 @@ pub fn timestamp_to_datetime_utc(timestamp: &nidx_protos::prost_types::Timestamp
54
54
  DateTime::from_timestamp_secs(timestamp.seconds)
55
55
  }
56
56
 
57
+ pub fn datetime_utc_to_timestamp(tantivy: &DateTime) -> nidx_protos::prost_types::Timestamp {
58
+ nidx_protos::prost_types::Timestamp {
59
+ seconds: tantivy.into_timestamp_secs(),
60
+ nanos: 0,
61
+ }
62
+ }
63
+
57
64
  impl TextSchema {
58
65
  pub fn new(_version: u64) -> Self {
59
66
  let mut sb = Schema::builder();
@@ -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.4.post643"
16
+ version = "6.9.4.post652"
17
17
 
18
18
  [project.urls]
19
19
  Homepage = "https://nuclia.com"