Clément Renault
92ec908303
Introduce the facet field id values engine database
2020-11-11 16:06:33 +01:00
Clément Renault
e0058c1125
Introduce codecs for facet types (string, f64, u64, i64)
2020-11-11 15:48:24 +01:00
Clément Renault
ea43080548
Make the indexing process send the new progress step events
2020-11-11 13:13:08 +01:00
Clément Renault
e78b96a657
Introduce a more detailed progress status enum
2020-11-11 12:31:59 +01:00
Clément Renault
535f8088d7
Write the words pairs proximities directly into LMDB to speedup indexing
2020-11-11 11:25:31 +01:00
Clément Renault
45ae086974
Make sure pending updates are process when restarting the UpdateStore
2020-11-09 17:33:07 +01:00
Clément Renault
4fb138c42e
Make sure we index all kind of JSON types
2020-11-06 16:35:07 +01:00
Clément Renault
c94bc59d7e
Introduce a function to transform an obk into a JSON
2020-11-05 13:57:29 +01:00
Clément Renault
0408c9d66a
Move the http server into its own sub-module
2020-11-05 11:16:39 +01:00
Clément Renault
a31db33e93
Introduce an optimization when the searchable attributes are ordered
2020-11-03 19:59:09 +01:00
Clément Renault
01c4f5abcd
Introduce the searchable attributes setting to the settings route
2020-11-03 19:35:55 +01:00
Clément Renault
63f65bac3e
Ignore the long running UpdateStore test
2020-11-03 19:12:00 +01:00
Clément Renault
a20c871ece
Add more tests to the Settings searchable attributes operation
2020-11-03 18:58:19 +01:00
Clément Renault
649fb6e401
Make sure that the indexing Store only index searchable fields
2020-11-03 18:58:19 +01:00
Clément Renault
e48630da72
Introduce the searchable parameter settings to the Settings update
2020-11-03 18:58:19 +01:00
Clément Renault
68d783145b
Introduce searchable fields methods on the index
2020-11-03 18:58:19 +01:00
Clément Renault
7e120fc441
Allow library users to specify the rayon ThreadPool for UpdateBuilder
2020-11-02 19:11:22 +01:00
Clément Renault
3d1854ab95
Introduce an HTTP route to accept settings changes
2020-11-02 15:47:21 +01:00
Clément Renault
995d72b8c1
Introduce the Settings update operation
2020-11-02 15:31:20 +01:00
Clément Renault
0c612f08c7
Rename the indexing warp routes
2020-11-02 15:30:29 +01:00
Clément Renault
9b08f48dbd
Construct the documents based on the displayed fields or fields ids order
2020-11-02 13:01:32 +01:00
Clément Renault
303c3ce89e
Clean up the heed imports in the index module
2020-11-02 12:49:54 +01:00
Clément Renault
8f56753a2f
Introduce displayed fields methods on the index
2020-11-02 12:49:54 +01:00
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
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
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
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
Clément Renault
8ed8abb9df
Introduce an append-only indexing system
2020-10-20 15:00:58 +02:00
Clément Renault
a122d3d466
Export the indexing part into a module
2020-10-20 14:22:09 +02:00
Clément Renault
eb92e72e6c
Updates can send progress update status
2020-10-20 12:28:10 +02:00
Clément Renault
03ca1ff634
Make the updates page interactive
2020-10-20 12:09:38 +02:00
Clément Renault
35c9a3c558
Brodacast the updates infos to every ws clients
2020-10-20 11:19:34 +02:00
Clément Renault
56c3a61d83
Introduce a new updates page
2020-10-19 19:57:15 +02:00
Clément Renault
871222aebd
Introduce some new routes to handle live indexing
2020-10-19 16:06:43 +02:00
Clément Renault
d3145be744
Rename the meta UpdateStore method
2020-10-19 14:00:00 +02:00
Clément Renault
8bfa43f9a7
Update the iter_metas UpdateStore method
2020-10-19 13:58:08 +02:00
Clément Renault
65e32fecb1
Move the binaries into one with subcommands
2020-10-19 13:44:17 +02:00
Clément Renault
ff389f1270
Update heed-types to 0.7.1
2020-10-19 11:52:59 +02:00
Clément Renault
5b4eda670b
Add two tests for the UpdateStore
2020-10-18 18:55:09 +02:00
Clément Renault
edb8c99fbe
Introduce a method to get the meta of an update on the UpdateStore
2020-10-18 17:19:04 +02:00
Clément Renault
eca49e3a03
Introduce a notification channel for the UpdateStore
2020-10-18 16:37:37 +02:00
Clément Renault
83c1db8763
Introduce the UpdateStore
2020-10-18 15:26:57 +02:00
Clément Renault
90d4c1d153
Simplify the words pair proximity computation
2020-10-15 16:18:43 +02:00
Clément Renault
9021b2dba6
Introduce the enable-chunk-fusing flag
2020-10-14 18:44:59 +02:00
Kerollmops
f980422c57
Move from oxidized-mtbl to grenad
2020-10-14 12:47:32 +02:00
Clément Renault
b342a86c15
Divide the max-memory parameter by the number of sorters in the store
2020-10-08 17:27:53 +02:00
Kerollmops
fb2c402ae1
Split the max-memory by the number of jobs
2020-10-07 14:23:22 +02:00
Kerollmops
38820bc75c
Improve and simplify the query tokenizer
2020-10-07 14:23:22 +02:00
Kerollmops
a00f5850ee
Add support for placeholder search for empty queries
2020-10-06 20:19:50 +02:00
Kerollmops
433d9bbc6e
Use CompressionType::from_str rather than a custom function
2020-10-06 13:50:34 +02:00
Clément Renault
a2182e68a6
Rewrite the parallel merge indexing part
2020-10-05 20:54:06 +02:00
Kerollmops
e9e03259c1
Improve the mDFS performance and return the proximity
2020-10-05 18:13:56 +02:00
Kerollmops
bb15f16d8c
Merge other databases content while writing into LMDB at the same time
2020-10-05 16:35:10 +02:00
Clément Renault
9af946a306
Merging the main, word docids and words pairs proximity docids in parallel
2020-10-04 18:40:34 +02:00
Clément Renault
99705deb7d
Directly use a writer for the docid word positions
2020-10-04 18:17:53 +02:00
Clément Renault
67577a3760
It is an error to merge docid word positions
2020-10-04 17:31:12 +02:00
Clément Renault
ce8e56ee18
Rewrite the indexer to use one MTBL by database
...
This allows us to avoid prefixing keys and appending into LMDB databases
2020-10-04 17:04:33 +02:00
Clément Renault
acd2a63879
Introduce a simple FST based chinese word segmenter
2020-10-04 17:04:33 +02:00