nidx-binding 6.7.0.post481__tar.gz → 6.7.0.post485__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.7.0.post481 → nidx_binding-6.7.0.post485}/Cargo.lock +0 -1
  2. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/PKG-INFO +1 -1
  3. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/Cargo.toml +0 -1
  4. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/fuzzy_query.rs +1 -11
  5. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/lib.rs +1 -1
  6. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/reader.rs +88 -80
  7. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/request_types.rs +0 -13
  8. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/schema.rs +0 -1
  9. nidx_binding-6.7.0.post485/nidx_paragraph/src/search_query.rs +489 -0
  10. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/search_response.rs +9 -20
  11. {nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser → nidx_binding-6.7.0.post485/nidx_paragraph/src}/stop_words.rs +0 -107
  12. nidx_binding-6.7.0.post485/nidx_paragraph/tests/reader.rs +495 -0
  13. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/pyproject.toml +1 -1
  14. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/pyproject.toml +1 -1
  15. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_suggest.rs +3 -5
  16. nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -198
  17. nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -212
  18. nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser/tokenizer.rs +0 -454
  19. nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser.rs +0 -156
  20. nidx_binding-6.7.0.post481/nidx_paragraph/src/search_query.rs +0 -236
  21. nidx_binding-6.7.0.post481/nidx_paragraph/tests/reader.rs +0 -507
  22. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.config/nextest.toml +0 -0
  23. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
  24. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
  25. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
  26. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
  27. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
  28. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
  29. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
  30. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
  31. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
  32. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
  33. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
  34. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
  35. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
  36. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
  37. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
  38. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
  39. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
  40. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
  41. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
  42. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
  43. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
  44. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
  45. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
  46. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
  47. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
  48. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
  49. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
  50. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
  51. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
  52. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
  53. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
  54. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
  55. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
  56. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
  57. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
  58. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
  59. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
  60. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
  61. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
  62. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
  63. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
  64. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
  65. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
  66. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
  67. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
  68. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
  69. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
  70. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
  71. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
  72. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
  73. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
  74. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
  75. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
  76. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
  77. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
  78. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
  79. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
  80. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
  81. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
  82. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/Cargo.toml +0 -0
  83. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/README.md +0 -0
  84. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241007163501_initial.sql +0 -0
  85. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241211120039_merge_job_priority.sql +0 -0
  86. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241211121159_basic_indexes.sql +0 -0
  87. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241212151105_check_segment_records.sql +0 -0
  88. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20250110145554_in_flight_messages.sql +0 -0
  89. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_binding/Cargo.toml +0 -0
  90. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_binding/src/lib.rs +0 -0
  91. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/query_io.rs +0 -0
  92. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/resource_indexer.rs +0 -0
  93. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/set_query.rs +0 -0
  94. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/README.md +0 -0
  95. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ar.json +0 -0
  96. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/az.json +0 -0
  97. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/bn.json +0 -0
  98. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ca.json +0 -0
  99. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ch.json +0 -0
  100. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/da.json +0 -0
  101. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/de.json +0 -0
  102. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/el.json +0 -0
  103. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/en.json +0 -0
  104. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/es.json +0 -0
  105. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/eu.json +0 -0
  106. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/extract.py +0 -0
  107. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/fi.json +0 -0
  108. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/fr.json +0 -0
  109. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/he.json +0 -0
  110. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/hu.json +0 -0
  111. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/id.json +0 -0
  112. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/it.json +0 -0
  113. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/kk.json +0 -0
  114. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ne.json +0 -0
  115. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/nl.json +0 -0
  116. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/no.json +0 -0
  117. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/pt.json +0 -0
  118. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ro.json +0 -0
  119. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ru.json +0 -0
  120. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/sl.json +0 -0
  121. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/sv.json +0 -0
  122. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/tg.json +0 -0
  123. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/tr.json +0 -0
  124. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/tests/common/mod.rs +0 -0
  125. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/Cargo.toml +0 -0
  126. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/build.py +0 -0
  127. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/build.rs +0 -0
  128. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/nidx.proto +0 -0
  129. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/nodereader.proto +0 -0
  130. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/noderesources.proto +0 -0
  131. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/nodewriter.proto +0 -0
  132. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/src/lib.rs +0 -0
  133. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/Cargo.toml +0 -0
  134. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/graph_collector.rs +0 -0
  135. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/graph_query_parser.rs +0 -0
  136. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/io_maps.rs +0 -0
  137. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/lib.rs +0 -0
  138. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/reader.rs +0 -0
  139. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/resource_indexer.rs +0 -0
  140. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/schema.rs +0 -0
  141. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/top_unique_n.rs +0 -0
  142. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/common/mod.rs +0 -0
  143. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
  144. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/test_graph_search.rs +0 -0
  145. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/test_writer.rs +0 -0
  146. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/Cargo.toml +0 -0
  147. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/src/index_reader.rs +0 -0
  148. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/src/lib.rs +0 -0
  149. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/src/utils.rs +0 -0
  150. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tests/Cargo.toml +0 -0
  151. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tests/src/graph.rs +0 -0
  152. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tests/src/lib.rs +0 -0
  153. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/Cargo.toml +0 -0
  154. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/lib.rs +0 -0
  155. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/prefilter.rs +0 -0
  156. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/query_io.rs +0 -0
  157. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/reader.rs +0 -0
  158. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/request_types.rs +0 -0
  159. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/resource_indexer.rs +0 -0
  160. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/schema.rs +0 -0
  161. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/search_query.rs +0 -0
  162. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/common/mod.rs +0 -0
  163. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_deletions.rs +0 -0
  164. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_flow.rs +0 -0
  165. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_search.rs +0 -0
  166. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_streaming.rs +0 -0
  167. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/Cargo.toml +0 -0
  168. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/src/lib.rs +0 -0
  169. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/src/prefilter.rs +0 -0
  170. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/src/query_language.rs +0 -0
  171. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/Cargo.toml +0 -0
  172. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/config.rs +0 -0
  173. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/node.rs +0 -0
  174. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/store.rs +0 -0
  175. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/trie.rs +0 -0
  176. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
  177. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1.rs +0 -0
  178. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
  179. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
  180. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v2.rs +0 -0
  181. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store.rs +0 -0
  182. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_types.rs +0 -0
  183. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/formula.rs +0 -0
  184. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/disk_hnsw.rs +0 -0
  185. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/ops_hnsw.rs +0 -0
  186. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/params.rs +0 -0
  187. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/ram_hnsw.rs +0 -0
  188. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw.rs +0 -0
  189. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/indexer.rs +0 -0
  190. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
  191. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/inverted_index/map.rs +0 -0
  192. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/inverted_index.rs +0 -0
  193. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/lib.rs +0 -0
  194. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/multivector.rs +0 -0
  195. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/query_io.rs +0 -0
  196. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/request_types.rs +0 -0
  197. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/searcher.rs +0 -0
  198. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/segment/tests.rs +0 -0
  199. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/segment.rs +0 -0
  200. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/utils.rs +0 -0
  201. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
  202. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/vector_types/mod.rs +0 -0
  203. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/common/mod.rs +0 -0
  204. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/test_basic_search.rs +0 -0
  205. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/test_hidden.rs +0 -0
  206. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/test_maxsim.rs +0 -0
  207. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/api/grpc.rs +0 -0
  208. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/api/shards.rs +0 -0
  209. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/api.rs +0 -0
  210. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/control.rs +0 -0
  211. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/errors.rs +0 -0
  212. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/grpc_server.rs +0 -0
  213. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/import_export.rs +0 -0
  214. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/indexer.rs +0 -0
  215. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/lib.rs +0 -0
  216. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/main.rs +0 -0
  217. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/deletion.rs +0 -0
  218. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/index.rs +0 -0
  219. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/index_request.rs +0 -0
  220. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/merge_job.rs +0 -0
  221. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/segment.rs +0 -0
  222. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/shard.rs +0 -0
  223. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata.rs +0 -0
  224. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metrics.rs +0 -0
  225. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/audit_task.rs +0 -0
  226. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/log_merge.rs +0 -0
  227. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/merge_task.rs +0 -0
  228. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/metrics_task.rs +0 -0
  229. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/purge_tasks.rs +0 -0
  230. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/vector_merge.rs +0 -0
  231. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler.rs +0 -0
  232. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/grpc.rs +0 -0
  233. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/index_cache.rs +0 -0
  234. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/query_language.rs +0 -0
  235. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/query_planner.rs +0 -0
  236. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/shard_search.rs +0 -0
  237. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/shard_selector.rs +0 -0
  238. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/shard_suggest.rs +0 -0
  239. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/streams.rs +0 -0
  240. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/sync.rs +0 -0
  241. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher.rs +0 -0
  242. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/segment_store.rs +0 -0
  243. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/settings.rs +0 -0
  244. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry/duration_layer.rs +0 -0
  245. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry/log_format.rs +0 -0
  246. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry/middleware.rs +0 -0
  247. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry.rs +0 -0
  248. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/tool.rs +0 -0
  249. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/utilization_tracker.rs +0 -0
  250. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/worker.rs +0 -0
  251. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/common/mod.rs +0 -0
  252. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/common/services.rs +0 -0
  253. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_date_range_search.rs +0 -0
  254. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_search_filtering.rs +0 -0
  255. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_search_relations.rs +0 -0
  256. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_search_sorting.rs +0 -0
  257. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_searcher_cluster.rs +0 -0
  258. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_security_search.rs +0 -0
  259. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_shards.rs +0 -0
  260. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_shards_api.rs +0 -0
  261. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_synced_searcher.rs +0 -0
  262. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_vector_normalization.rs +0 -0
  263. {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_vectorsets.rs +0 -0
@@ -2193,7 +2193,6 @@ dependencies = [
2193
2193
  "nidx_protos",
2194
2194
  "nidx_tantivy",
2195
2195
  "nidx_types",
2196
- "nom",
2197
2196
  "once_cell",
2198
2197
  "regex",
2199
2198
  "serde_json",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nidx_binding
3
- Version: 6.7.0.post481
3
+ Version: 6.7.0.post485
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -12,7 +12,6 @@ levenshtein_automata = "0.2.1"
12
12
  nidx_protos = { version = "0.1.0", path = "../nidx_protos" }
13
13
  nidx_tantivy = { version = "0.1.0", path = "../nidx_tantivy" }
14
14
  nidx_types = { version = "0.1.0", path = "../nidx_types" }
15
- nom = "7" # same version as used by tantivy
16
15
  once_cell = "1.20.2"
17
16
  regex = "1.11.1"
18
17
  serde_json = "1.0.132"
@@ -184,12 +184,7 @@ pub struct FuzzyTermQuery {
184
184
 
185
185
  impl std::fmt::Debug for FuzzyTermQuery {
186
186
  fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
187
- f.write_fmt(format_args!(
188
- "Fuzzy {{ term: {}, distance: {}, prefix: {} }}",
189
- self.term.value().as_str().unwrap_or("<unknown>"),
190
- self.distance,
191
- self.prefix
192
- ))
187
+ f.write_str("Fuzzy")
193
188
  }
194
189
  }
195
190
  impl FuzzyTermQuery {
@@ -215,11 +210,6 @@ impl FuzzyTermQuery {
215
210
  }
216
211
  }
217
212
 
218
- #[cfg(test)]
219
- pub fn is_prefix(&self) -> bool {
220
- self.prefix
221
- }
222
-
223
213
  fn specialized_weight(&self) -> tantivy::Result<AutomatonWeight<DfaWrapper>> {
224
214
  // LEV_BUILDER is a HashMap, whose `get` method returns an Option
225
215
  match LEV_BUILDER.get(&(self.distance, self.transposition_cost_one)) {
@@ -20,7 +20,6 @@
20
20
 
21
21
  mod fuzzy_query;
22
22
  mod query_io;
23
- mod query_parser;
24
23
  mod reader;
25
24
  mod request_types;
26
25
  mod resource_indexer;
@@ -28,6 +27,7 @@ mod schema;
28
27
  mod search_query;
29
28
  mod search_response;
30
29
  mod set_query;
30
+ mod stop_words;
31
31
 
32
32
  use nidx_protos::{ParagraphItem, ParagraphSearchResponse, StreamRequest};
33
33
  use nidx_tantivy::{
@@ -19,23 +19,23 @@
19
19
  //
20
20
 
21
21
  use std::fmt::Debug;
22
- use std::time::{Duration, Instant};
22
+ use std::time::Instant;
23
23
 
24
24
  use nidx_protos::order_by::{OrderField, OrderType};
25
25
  use nidx_protos::{OrderBy, ParagraphItem, ParagraphSearchResponse, StreamRequest};
26
26
  use nidx_types::prefilter::PrefilterResult;
27
27
  use tantivy::collector::{Collector, Count, FacetCollector, TopDocs};
28
- use tantivy::query::{AllQuery, Query};
28
+ use tantivy::query::{AllQuery, Query, QueryParser};
29
29
  use tantivy::{DateTime, Order, schema::*};
30
30
  use tantivy::{DocAddress, Index, IndexReader};
31
31
  use tracing::*;
32
32
 
33
33
  use super::schema::ParagraphSchema;
34
- use crate::query_parser::FUZZY_DISTANCE;
35
34
  use crate::request_types::{ParagraphSearchRequest, ParagraphSuggestRequest};
36
35
  use crate::search_query::{SharedTermC, search_query, streaming_query, suggest_query};
37
36
  use crate::search_response::{SearchBm25Response, SearchFacetsResponse, SearchIntResponse, extract_labels};
38
37
 
38
+ const FUZZY_DISTANCE: u8 = 1;
39
39
  const NUMBER_OF_RESULTS_SUGGEST: usize = 20;
40
40
 
41
41
  pub struct ParagraphReaderService {
@@ -65,17 +65,19 @@ impl ParagraphReaderService {
65
65
  request: &ParagraphSuggestRequest,
66
66
  prefilter: &PrefilterResult,
67
67
  ) -> anyhow::Result<ParagraphSearchResponse> {
68
- let query = &request.body;
69
- let (keyword, term_collector, fuzzy) = suggest_query(request, prefilter, &self.schema);
68
+ let parser = QueryParser::for_index(&self.index, vec![self.schema.text]);
69
+ let text = self.adapt_text(&parser, &request.body);
70
+ let (original, termc, fuzzied) =
71
+ suggest_query(&parser, &text, request, prefilter, &self.schema, FUZZY_DISTANCE);
70
72
 
71
73
  let searcher = self.reader.searcher();
72
74
  let topdocs = TopDocs::with_limit(NUMBER_OF_RESULTS_SUGGEST);
73
- let mut results = searcher.search(&keyword, &topdocs)?;
75
+ let mut results = searcher.search(&original, &topdocs)?;
74
76
 
75
77
  if results.is_empty() {
76
78
  let topdocs = TopDocs::with_limit(NUMBER_OF_RESULTS_SUGGEST);
77
- match searcher.search(&fuzzy, &topdocs) {
78
- Ok(mut fuzzy) => results.append(&mut fuzzy),
79
+ match searcher.search(&fuzzied, &topdocs) {
80
+ Ok(mut fuzzied) => results.append(&mut fuzzied),
79
81
  Err(err) => error!("{err:?} during suggest"),
80
82
  }
81
83
  }
@@ -84,10 +86,10 @@ impl ParagraphReaderService {
84
86
  total: results.len(),
85
87
  top_docs: results,
86
88
  facets_count: None,
87
- facets: &[],
88
- termc: term_collector.get_termc(),
89
+ facets: vec![],
90
+ termc: termc.get_termc(),
89
91
  text_service: self,
90
- query,
92
+ query: &text,
91
93
  results_per_page: 10,
92
94
  searcher,
93
95
  min_score: 0.0,
@@ -111,46 +113,69 @@ impl ParagraphReaderService {
111
113
  request: &ParagraphSearchRequest,
112
114
  prefilter: &PrefilterResult,
113
115
  ) -> anyhow::Result<ParagraphSearchResponse> {
114
- let mut time_tracker = TimeTracker::start();
116
+ let time = Instant::now();
117
+ let id = Some(&request.id);
118
+
119
+ let v = time.elapsed().as_millis();
120
+ debug!("{id:?} - Creating query: starts at {v} ms");
115
121
 
116
- let shard_id = &request.id;
117
- let text = &request.body;
122
+ let parser = QueryParser::for_index(&self.index, vec![self.schema.text]);
118
123
  let results = request.result_per_page as usize;
119
- let (keyword_query, termc, fuzzy_query) = search_query(request, prefilter, &self.index, &self.schema);
120
- let facets = request.facets();
121
- trace!(
122
- shard_id,
123
- "Query parsing took {}µs",
124
- time_tracker.checkpoint().as_micros()
125
- );
126
124
 
125
+ let facets: Vec<_> = request
126
+ .faceted
127
+ .as_ref()
128
+ .iter()
129
+ .flat_map(|v| v.labels.iter())
130
+ .filter(|s| ParagraphReaderService::is_valid_facet(s))
131
+ .cloned()
132
+ .collect();
133
+ let text = self.adapt_text(&parser, &request.body);
134
+ let v = time.elapsed().as_millis();
135
+ debug!("{id:?} - Creating query: ends at {v} ms");
136
+
137
+ let v = time.elapsed().as_millis();
138
+ debug!("{id:?} - Searching: starts at {v} ms");
139
+
140
+ let advanced = request
141
+ .advanced_query
142
+ .as_ref()
143
+ .map(|query| parser.parse_query(query))
144
+ .transpose()?;
145
+ #[rustfmt::skip] let (original, termc, fuzzied) = search_query(
146
+ &parser,
147
+ &text,
148
+ request,
149
+ prefilter,
150
+ &self.schema,
151
+ FUZZY_DISTANCE,
152
+ advanced
153
+ );
127
154
  let searcher = Searcher {
128
155
  request,
129
156
  results,
130
- facets,
131
- text,
157
+ facets: &facets,
158
+ text: &text,
132
159
  only_faceted: request.only_faceted,
133
160
  };
134
- // println!("Regular search with query: {:#?}", keyword_query);
135
- 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
- );
161
+ let mut response = searcher.do_search(termc.clone(), original, self, request.min_score)?;
162
+ let v = time.elapsed().as_millis();
163
+ debug!("{id:?} - Searching: ends at {v} ms");
141
164
 
142
165
  if response.results.is_empty() && request.result_per_page > 0 && request.min_score == 0 as f32 {
143
- // println!("Fuzzy search with query: {:#?}", fuzzy_query);
144
- let fuzzied = searcher.do_search(termc, fuzzy_query, self, request.min_score)?;
166
+ let v = time.elapsed().as_millis();
167
+ debug!("{id:?} - Applying fuzzy: starts at {v} ms");
168
+
169
+ let fuzzied = searcher.do_search(termc, fuzzied, self, request.min_score)?;
145
170
  response = fuzzied;
146
171
  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
- );
172
+ let v = time.elapsed().as_millis();
173
+ debug!("{id:?} - Applying fuzzy: ends at {v} ms");
152
174
  }
153
175
 
176
+ let v = time.elapsed().as_millis();
177
+ debug!("{id:?} - Producing results: starts at {v} ms");
178
+
154
179
  let total = response.results.len() as f32;
155
180
  let mut some_below_min_score: bool = false;
156
181
  let response_results = std::mem::take(&mut response.results);
@@ -175,47 +200,30 @@ impl ParagraphReaderService {
175
200
  response.next_page = false;
176
201
  }
177
202
 
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
- );
203
+ let v = time.elapsed().as_millis();
204
+ debug!("{id:?} - Producing results: starts at {v} ms");
205
+
206
+ let v = time.elapsed().as_millis();
207
+ debug!("{id:?} - Ending at: {v} ms");
188
208
 
189
209
  Ok(response)
190
210
  }
191
- }
192
-
193
- /// Small utility struct to track time in checkpoints.
194
- struct TimeTracker {
195
- init: Instant,
196
- checkpoint: Duration,
197
- }
198
-
199
- impl TimeTracker {
200
- pub fn start() -> Self {
201
- Self {
202
- init: Instant::now(),
203
- checkpoint: Duration::default(),
211
+ fn adapt_text(&self, parser: &QueryParser, text: &str) -> String {
212
+ // FIXME: after migrating from tantivy 0.22 -> 0.24, the query grammar
213
+ // now includes single quotes as special character. Queries having a
214
+ // single single quote now fail to parse. As a quick fix, we remove them
215
+ // all and replace them by a space.
216
+ let text = text.replace('\'', " ");
217
+ match text.trim() {
218
+ "" => text.to_string(),
219
+ text => parser
220
+ .parse_query(text)
221
+ .map(|_| text.to_string())
222
+ .unwrap_or_else(|_| format!("\"{}\"", text.replace('"', ""))),
204
223
  }
205
224
  }
206
-
207
- /// Set a new checkpoint and return the duration since last one (or the
208
- /// start if it's the first time).
209
- pub fn checkpoint(&mut self) -> Duration {
210
- let checkpoint = self.init.elapsed();
211
- let elapsed = checkpoint - self.checkpoint;
212
- self.checkpoint = checkpoint;
213
- elapsed
214
- }
215
-
216
- /// Return the total elapsed duration since the start of the time tracking
217
- pub fn elapsed(&self) -> Duration {
218
- self.init.elapsed()
225
+ fn is_valid_facet(maybe_facet: &str) -> bool {
226
+ Facet::from_text(maybe_facet).is_ok()
219
227
  }
220
228
  }
221
229
 
@@ -271,7 +279,7 @@ impl Iterator for BatchProducer {
271
279
  struct Searcher<'a> {
272
280
  request: &'a ParagraphSearchRequest,
273
281
  results: usize,
274
- facets: Vec<Facet>,
282
+ facets: &'a [String],
275
283
  text: &'a str,
276
284
  only_faceted: bool,
277
285
  }
@@ -303,7 +311,7 @@ impl Searcher<'_> {
303
311
  .facets
304
312
  .iter()
305
313
  .fold(FacetCollector::for_field("facets"), |mut collector, facet| {
306
- collector.add_facet(facet.clone());
314
+ collector.add_facet(Facet::from(facet));
307
315
  collector
308
316
  });
309
317
  if self.only_faceted {
@@ -312,7 +320,7 @@ impl Searcher<'_> {
312
320
  Ok(ParagraphSearchResponse::from(SearchFacetsResponse {
313
321
  text_service: service,
314
322
  facets_count: Some(facets_count),
315
- facets: &self.facets,
323
+ facets: self.facets.to_vec(),
316
324
  }))
317
325
  } else if self.facets.is_empty() {
318
326
  // Only query no facets
@@ -325,7 +333,7 @@ impl Searcher<'_> {
325
333
  Ok(ParagraphSearchResponse::from(SearchIntResponse {
326
334
  total,
327
335
  facets_count: None,
328
- facets: &self.facets,
336
+ facets: self.facets.to_vec(),
329
337
  top_docs,
330
338
  termc: termc.get_termc(),
331
339
  text_service: service,
@@ -341,7 +349,7 @@ impl Searcher<'_> {
341
349
  Ok(ParagraphSearchResponse::from(SearchBm25Response {
342
350
  total,
343
351
  facets_count: None,
344
- facets: &self.facets,
352
+ facets: self.facets.to_vec(),
345
353
  top_docs,
346
354
  termc: termc.get_termc(),
347
355
  text_service: service,
@@ -364,7 +372,7 @@ impl Searcher<'_> {
364
372
  total,
365
373
  top_docs,
366
374
  facets_count: Some(facets_count),
367
- facets: &self.facets,
375
+ facets: self.facets.to_vec(),
368
376
  termc: termc.get_termc(),
369
377
  text_service: service,
370
378
  query: self.text,
@@ -380,7 +388,7 @@ impl Searcher<'_> {
380
388
  total,
381
389
  top_docs,
382
390
  facets_count: Some(facets_count),
383
- facets: &self.facets,
391
+ facets: self.facets.to_vec(),
384
392
  termc: termc.get_termc(),
385
393
  text_service: service,
386
394
  query: self.text,
@@ -19,7 +19,6 @@
19
19
  //
20
20
 
21
21
  use nidx_types::query_language::BooleanExpression;
22
- use tantivy::schema::Facet;
23
22
 
24
23
  #[derive(Clone, Default)]
25
24
  pub struct ParagraphSearchRequest {
@@ -46,15 +45,3 @@ pub struct ParagraphSuggestRequest {
46
45
  /// Whether to do an OR/AND between prefilter results and filtering_formula
47
46
  pub filter_or: bool,
48
47
  }
49
-
50
- impl ParagraphSearchRequest {
51
- // Helper method to extract valid facets from the request
52
- pub fn facets(&self) -> Vec<Facet> {
53
- self.faceted
54
- .as_ref()
55
- .iter()
56
- .flat_map(|faceted| faceted.labels.iter())
57
- .filter_map(|facet| Facet::from_text(facet).ok())
58
- .collect()
59
- }
60
- }
@@ -87,7 +87,6 @@ impl Default for ParagraphSchema {
87
87
  let uuid = sb.add_text_field("uuid", STRING | STORED);
88
88
  let field_uuid = sb.add_text_field("field_uuid", STRING);
89
89
  let paragraph = sb.add_text_field("paragraph", STRING | STORED);
90
- // NOTE: review search query tokenization if we change how are we tokenizing this field
91
90
  let text = sb.add_text_field("text", TEXT);
92
91
  let start_pos = sb.add_u64_field("start_pos", num_options.clone());
93
92
  let end_pos = sb.add_u64_field("end_pos", num_options.clone());