700 Commits

Author SHA1 Message Date
Clément Renault
3abfe8aa22
Validate documents ids before accepting them 2020-11-01 20:55:21 +01:00
Clément Renault
0ccf4cf785
Simplify the IndexDocuments builder creation from the UpdateBuilder 2020-11-01 17:31:20 +01:00
Clément Renault
d8ff939409
Introduce bors to the project 2020-11-01 14:49:07 +01:00
Clément Renault
9047dc8163
Add a Github actions workflows 2020-11-01 14:47:44 +01:00
Clément Renault
600aa223c2
Fix a bug where generated docids were not saved when indexing JSON docs 2020-11-01 12:19:07 +01:00
Clément Renault
f0e63025b0
Update the Transform struct to support JSON stream updates 2020-11-01 12:19:06 +01:00
Kerollmops
082ad84914
Fix the benchmarks 2020-10-31 22:18:29 +01:00
Kerollmops
6d52c5b2f0
Introduce a parameter to disable the engine to autogenerate docids 2020-10-31 21:46:55 +01:00
Clément Renault
21b4d60101
Add replace/update csv/json from the HTTP server 2020-10-31 20:52:49 +01:00
Clément Renault
a4f8be7811
Support numbers and boolean when indexing JSON 2020-10-31 20:52:49 +01:00
Clément Renault
f0d028d3a4
Update the Transform struct to support JSON updates 2020-10-31 20:52:49 +01:00
Clément Renault
9d47ee52b4
Generate a uuid v4 based document id when missing 2020-10-31 15:11:06 +01:00
Clément Renault
ddbd336387
Introduce primary key methods on the index 2020-10-31 11:50:59 +01:00
Clément Renault
0d01e4854b
Add a test to check that merging works correctly with CSVs 2020-10-30 13:46:56 +01:00
Clément Renault
955302fd95
Introduce an HTTP route to clear the documents 2020-10-30 13:12:55 +01:00
Clément Renault
7cc1a358f5
Fix a documents indexing bug and add a test 2020-10-30 12:14:25 +01:00
Clément Renault
99da69c85f
Introduce the prepare_for_closing Index method 2020-10-30 11:46:14 +01:00
Clément Renault
222063b19d
Introduce the Index path method 2020-10-30 11:46:00 +01:00
Clément Renault
085d3b9d94
Update heed to 0.10.0 2020-10-30 11:42:00 +01:00
Clément Renault
a30206a665
Prefer using iterator put_current instead of a get put method 2020-10-30 11:13:45 +01:00
Clément Renault
e63fdf2b22
Move the heed env into the index itself to ease the usage of the library 2020-10-30 10:56:35 +01:00
Clément Renault
b5d52b6b45
Prefer using a smallstr instead of a real String to reduce allocations 2020-10-29 14:32:32 +01:00
Clément Renault
40993a0d25
Fix an indexing process bug, where documents were not written in order 2020-10-29 14:20:03 +01:00
Clément Renault
855a251489
Enable the clear documents optimization that wasn't working due to a bug 2020-10-29 13:52:48 +01:00
Clément Renault
1228c2948d
Add a comment about the ClearDocuments operation in the DeleteDocuments 2020-10-28 11:17:36 +01:00
Clément Renault
98fc24cbdf
Bump heed to fix a prefix iter bug 2020-10-28 10:55:21 +01:00
Kerollmops
d6338af766
Improve documents deletion by iterating over all the word pair positions 2020-10-27 18:50:09 +01:00
Clément Renault
3889d956d9
Introduce the UpdateBuilder and use it in the HTTP routes 2020-10-27 18:47:58 +01:00
Clément Renault
5c62fbb6a8
Move the IndexDocuments update into its own module 2020-10-26 12:21:13 +01:00
Clément Renault
8f76ec97c0
Move the DeleteDocuments update into its own module 2020-10-26 11:01:00 +01:00
Clément Renault
92ef1faa97
Move the ClearDocuments update into its own module 2020-10-26 10:58:17 +01:00
Clément Renault
1e1821f002
Introduce the merge_two_obkv function to merge documents on update 2020-10-26 10:55:07 +01:00
Clément Renault
60347a5483
Move the AvailableDocumentsIds iterator into the update module 2020-10-26 10:53:23 +01:00
Clément Renault
b14cca2ad9
Introduce the UpdateBuilder type along with some update operations 2020-10-25 18:32:01 +01:00
Clément Renault
adacc7977d
Make the Index return default values when value don't exist 2020-10-25 18:30:24 +01:00
Clément Renault
a7a4984175
Introduce the Transform type into the indexing system 2020-10-24 17:06:09 +02:00
Clément Renault
b44b04d25b
Serialize the CSV record values as JSON strings 2020-10-24 14:43:46 +02:00
Clément Renault
656a851830
Introduce the Transform struct transforming CSVs
This allows us to:
  - transform a CSV, a JSON or a JSON lines data type into the same
    Grenad x Obkv streamable data type and creates the new FieldsIdsMap.
  - Extract all the documents user ids in advance to be able to delete
    the existing documents before re-indexing them.
  - Keep the last documents with the same user id avoiding duplicates
    in the same request.
2020-10-24 13:37:38 +02:00
Clément Renault
8d82e37ec0
Introduce the AvailableDocumentsIds iterator 2020-10-23 12:07:01 +02:00
Clément Renault
2a4cd81c86
Add documentation to the Index methods 2020-10-22 15:44:12 +02:00
Clément Renault
566a7c3039
Make the FieldsIdsMap serialization more stable by using a BTreeMap 2020-10-22 14:53:20 +02:00
Clément Renault
9133f38138
Introduce the FieldsIdsMap type 2020-10-22 12:56:35 +02:00
Clément Renault
802e925fd7
Switch to a JSON protocol for the front page 2020-10-21 18:26:29 +02:00
Clément Renault
5caf523fd9
Move the Index to its own module 2020-10-21 15:55:48 +02:00
Clément Renault
2210818114
Introduce the obkv heed codec 2020-10-21 15:51:48 +02:00
Clément Renault
f6eecb855e
Send a basic progressing status to the updates front page 2020-10-21 15:38:28 +02:00
Clément Renault
4eeeccb9cd
Change the UpdateStore to have different processed and pending meta types 2020-10-21 13:52:15 +02:00
Clément Renault
16ab3e02a9
Change the UpdateStore internal meta serializer 2020-10-21 13:42:49 +02:00
Clément Renault
f948a03be2
Optimise the merge functions to avoid allocations 2020-10-20 16:40:50 +02:00
Clément Renault
cde8478388
Replace the panic in the merge function by actual errors 2020-10-20 16:19:07 +02:00