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.
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/Cargo.lock +0 -1
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/PKG-INFO +1 -1
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/Cargo.toml +0 -1
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/fuzzy_query.rs +1 -11
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/lib.rs +1 -1
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/reader.rs +88 -80
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/request_types.rs +0 -13
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/schema.rs +0 -1
- nidx_binding-6.7.0.post485/nidx_paragraph/src/search_query.rs +489 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/search_response.rs +9 -20
- {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
- nidx_binding-6.7.0.post485/nidx_paragraph/tests/reader.rs +495 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/pyproject.toml +1 -1
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/pyproject.toml +1 -1
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_suggest.rs +3 -5
- nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser/fuzzy_parser.rs +0 -198
- nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser/keyword_parser.rs +0 -212
- nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser/tokenizer.rs +0 -454
- nidx_binding-6.7.0.post481/nidx_paragraph/src/query_parser.rs +0 -156
- nidx_binding-6.7.0.post481/nidx_paragraph/src/search_query.rs +0 -236
- nidx_binding-6.7.0.post481/nidx_paragraph/tests/reader.rs +0 -507
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.config/nextest.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a60ec2f66f1e7b84189e5b089f2087a29ff6a64326a3743dea935bbc58ee77fa.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/README.md +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241007163501_initial.sql +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241211120039_merge_job_priority.sql +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241211121159_basic_indexes.sql +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20241212151105_check_segment_records.sql +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/migrations/20250110145554_in_flight_messages.sql +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_binding/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_binding/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/query_io.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/resource_indexer.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/set_query.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/README.md +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ar.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/az.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/bn.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ca.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ch.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/da.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/de.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/el.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/en.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/es.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/eu.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/extract.py +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/fi.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/fr.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/he.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/hu.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/id.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/it.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/kk.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ne.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/nl.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/no.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/pt.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ro.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/ru.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/sl.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/sv.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/tg.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/stop_words/tr.json +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/tests/common/mod.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/build.py +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/build.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/nidx.proto +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/nodereader.proto +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/noderesources.proto +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/nodewriter.proto +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_protos/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/graph_collector.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/graph_query_parser.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/io_maps.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/reader.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/resource_indexer.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/schema.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/src/top_unique_n.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/common/mod.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/test_graph_search.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_relation/tests/test_writer.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/src/index_reader.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tantivy/src/utils.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tests/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tests/src/graph.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_tests/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/prefilter.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/query_io.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/reader.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/request_types.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/resource_indexer.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/schema.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/src/search_query.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/common/mod.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_deletions.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_flow.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_search.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_text/tests/test_streaming.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/src/prefilter.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_types/src/query_language.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/Cargo.toml +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/config.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/node.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/store.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/trie.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1/trie_ram.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v1.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v2/paragraph_store.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v2/vector_store.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store/v2.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_store.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/data_types.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/formula.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/disk_hnsw.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/ops_hnsw.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/params.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw/ram_hnsw.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/hnsw.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/indexer.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/inverted_index/map.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/inverted_index.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/multivector.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/query_io.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/request_types.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/searcher.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/segment/tests.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/segment.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/utils.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/src/vector_types/mod.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/common/mod.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/test_basic_search.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/test_hidden.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_vector/tests/test_maxsim.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/api/grpc.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/api/shards.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/api.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/control.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/errors.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/grpc_server.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/import_export.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/indexer.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/lib.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/main.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/deletion.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/index.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/index_request.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/merge_job.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/segment.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata/shard.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metadata.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/metrics.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/audit_task.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/log_merge.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/merge_task.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/metrics_task.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/purge_tasks.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler/vector_merge.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/scheduler.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/grpc.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/index_cache.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/query_language.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/query_planner.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/shard_search.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/shard_selector.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/shard_suggest.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/streams.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher/sync.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/searcher.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/segment_store.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/settings.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry/duration_layer.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry/log_format.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry/middleware.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/telemetry.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/tool.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/utilization_tracker.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/src/worker.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/common/mod.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/common/services.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_date_range_search.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_search_filtering.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_search_relations.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_search_sorting.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_searcher_cluster.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_security_search.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_shards.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_shards_api.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_synced_searcher.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_vector_normalization.rs +0 -0
- {nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/tests/test_vectorsets.rs +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nidx_binding
|
3
|
-
Version: 6.7.0.
|
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.
|
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::
|
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
|
69
|
-
let
|
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(&
|
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(&
|
78
|
-
Ok(mut
|
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:
|
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
|
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
|
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
|
-
|
135
|
-
let
|
136
|
-
|
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
|
-
|
144
|
-
|
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
|
-
|
148
|
-
|
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
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
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
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
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
|
-
|
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:
|
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
|
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:
|
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:
|
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:
|
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:
|
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:
|
391
|
+
facets: self.facets.to_vec(),
|
384
392
|
termc: termc.get_termc(),
|
385
393
|
text_service: service,
|
386
394
|
query: self.text,
|
{nidx_binding-6.7.0.post481 → nidx_binding-6.7.0.post485}/nidx_paragraph/src/request_types.rs
RENAMED
@@ -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());
|