Commit Graph

343 Commits

Author SHA1 Message Date
30247d70cd Fix search highlight for non-unicode chars
The `matching_bytes` function takes a `&Token` now and:
- gets the number of bytes to highlight (unchanged).
- uses `Token.num_graphemes_from_bytes` to get the number of grapheme
  clusters to highlight.

In essence, the `matching_bytes` function returns the number of matching
grapheme clusters instead of bytes. Should this function be renamed
then?

Added proper highlighting in the HTTP UI:
- requires dependency on `unicode-segmentation` to extract grapheme
  clusters from tokens
- `<mark>` tag is put around only the matched part
    - before this change, the entire word was highlighted even if only a
      part of it matched
2022-01-17 11:37:44 +05:30
98a365aaae store the geopoint in three dimensions 2021-12-14 12:21:24 +01:00
25faef67d0 Remove the database setup in the filter_depth test 2021-12-09 11:57:53 +01:00
65519bc04b Test that empty filters return a None 2021-12-09 11:57:53 +01:00
ef59762d8e Prefer returning None instead of the Empty Filter state 2021-12-09 11:57:52 +01:00
ee856a7a46 Limit the max filter depth to 2000 2021-12-07 17:36:45 +01:00
32bd9f091f Detect the filters that are too deep and return an error 2021-12-07 17:20:11 +01:00
90f49eab6d Check the filter max depth limit and reject the invalid ones 2021-12-07 16:32:48 +01:00
6eb47ab792 remove update_id in UpdateBuilder 2021-11-16 13:07:04 +01:00
0ea0146e04 implement deref &str on the tokens 2021-11-09 11:34:10 +01:00
7483c7513a fix the filterable fields 2021-11-07 01:52:19 +01:00
e5af3ac65c rename the filter_condition.rs to filter.rs 2021-11-06 16:37:55 +01:00
6831c23449 merge with main 2021-11-06 16:34:30 +01:00
b249989bef fix most of the tests 2021-11-06 01:32:12 +01:00
27a6a26b4b makes the parse function part of the filter_parser 2021-11-05 10:46:54 +01:00
76d961cc77 implements the last errors 2021-11-04 17:42:06 +01:00
8234f9fdf3 recreate most filter error except for the geosearch 2021-11-04 17:24:55 +01:00
07a5ffb04c update http-ui 2021-11-04 15:52:22 +01:00
a58bc5bebb update milli with the new parser_filter 2021-11-04 15:02:36 +01:00
76a2adb7c3 re-enable the tests in the parser and start the creation of an error type 2021-11-02 17:35:17 +01:00
ed6db19681 Fix PR comments 2021-10-28 11:18:32 +02:00
2be755ce75 Lower error check, already check in meilisearch 2021-10-27 19:50:41 +02:00
3599df77f0 Change some error messages 2021-10-27 19:33:01 +02:00
d7943fe225 Merge #402
402: Optimize document transform r=MarinPostma a=MarinPostma

This pr optimizes the transform of documents additions in the obkv format. Instead on accepting any serializable objects, we instead treat json and CSV specifically:
- For json, we build a serde `Visitor`, that transform the json straight into obkv without intermediate representation.
- For csv, we directly write the lines in the obkv, applying other optimization as well.

Co-authored-by: marin postma <postma.marin@protonmail.com>
2021-10-26 09:55:28 +00:00
208903ddde Revert "Replacing pest with nom " 2021-10-25 11:58:00 +02:00
2e62925a6e fix tests 2021-10-25 10:26:42 +02:00
8d70b01714 optimize document deserialization 2021-10-25 10:26:42 +02:00
1327807caa add some error messages 2021-10-22 19:00:33 +02:00
c8d03046bf add a check on the fid in the geosearch 2021-10-22 18:08:18 +02:00
3942b3732f re-implement the geosearch 2021-10-22 18:03:39 +02:00
7cd9109e2f lowercase value extracted from Token 2021-10-22 17:50:15 +02:00
e25ca9776f start updating the exposed function to makes other modules happy 2021-10-22 17:23:22 +02:00
6c9165b6a8 provide a helper to parse the token but to not handle the errors 2021-10-22 16:52:13 +02:00
efb2f8b325 convert the errors 2021-10-22 16:38:35 +02:00
c27870e765 integrate a first version without any error handling 2021-10-22 14:33:18 +02:00
01dedde1c9 update some names and move some parser out of the lib.rs 2021-10-22 01:59:38 +02:00
c634d43ac5 add a simple test on the filters with an integer 2021-10-21 17:10:27 +02:00
6c15f50899 rewrite the parser logic 2021-10-21 16:45:42 +02:00
e1d81342cf add test on the or and and operator 2021-10-21 13:01:25 +02:00
423baac08b fix the tests 2021-10-21 12:45:40 +02:00
36281a653f write all the simple tests 2021-10-21 12:40:11 +02:00
661bc21af5 Fix the filter parser
And add a bunch of tests on the filter::from_array
2021-10-21 11:45:03 +02:00
59cc59e93e Merge #358
358: Replacing pest with nom  r=Kerollmops a=CNLHC



Co-authored-by: 刘瀚骋 <cn_lhc@qq.com>
2021-10-16 20:44:38 +00:00
7666e4f34a follow the suggestions 2021-10-14 21:37:59 +08:00
2ea2f7570c use nightly cargo to format the code 2021-10-14 16:46:13 +08:00
e750465e15 check logic for geolocation. 2021-10-14 16:12:00 +08:00
cd359cd96e WIP: extract the error trait bound to new trait. 2021-10-13 18:04:15 +08:00
5de5dd80a3 WIP: remove '_nom' suffix/redundant error enum/... 2021-10-13 11:06:15 +08:00
2c65781d91 format 2021-10-12 22:20:22 +08:00
360c5ff3df Remove limit of 1000 position per attribute
Instead of using an arbitrary limit we encode the absolute position in a u32
using one strong u16 for the field id and a weak u16 for the relative position in the attribute.
2021-10-12 10:10:50 +02:00