202 Commits

Author SHA1 Message Date
Quentin de Quelen
fa062ce2cf feat: Schema can be de/serialized from a json format 2019-01-12 21:05:48 +01:00
Clément Renault
78786a0007
feat: Introduce binary group by in the query builder 2019-01-10 20:13:40 +01:00
Clément Renault
ac347d788c
feat: Make multiple document updates shadow themselves 2019-01-10 15:25:24 +01:00
Clément Renault
e31afc2da2
chore: Move the WordArea type to its own module 2019-01-10 13:37:22 +01:00
Clément Renault
77c252e12a
chore: Move the Attribute type to its own module 2019-01-10 11:59:42 +01:00
Clément Renault
b53ef08d05
feat: Make WordArea be based on char index and length 2019-01-09 20:14:08 +01:00
Quentin de Quelen
8e5f834625 chore: remove assert on Attribute::new() 2019-01-08 18:46:55 +01:00
Clément Renault
de59ea495d
feat: Log some update steps 2019-01-06 22:49:12 +01:00
Clément Renault
966eda8ae5
feat: Do the sum of typos using usizes 2019-01-06 22:49:12 +01:00
Clément Renault
32f8908d71
feat: Reintroduce stopwords for the serializer 2019-01-06 22:49:11 +01:00
Clément Renault
f00b978801
Revert "feat: Pre-compute matches query index groups"
This reverts commit 039a9a4cc7463e6c18aed3c78c622b8bbb38b51d.
2019-01-06 21:54:49 +01:00
Clément Renault
a78b5d225f
Revert "feat: Allow Matches to be constructed"
This reverts commit d21406a93908b2b3ed8cd57b2182996b43cf7806.
2019-01-06 21:44:53 +01:00
Clément Renault
f32a59720d
Revert "feat: Introducing the Matches as_matches method"
This reverts commit ef7ba96d4a3f2107c386aa33860e707b812ab732.
2019-01-06 21:44:53 +01:00
Clément Renault
2cc5fbde1a
Revert "feat: Introduce multiple Iterator impl for Matches"
This reverts commit c594597a01422087a66e78bdfddd32d5abc99ad2.
2019-01-06 21:44:53 +01:00
Clément Renault
34d2850d28
Revert "feat: Prefer using ranges and not using unreachable!"
This reverts commit d899b8660382ea5a4c211761d28ea31e885a46ce.
2019-01-06 21:44:51 +01:00
Clément Renault
7f35b971f0
feat: Log the total number of documents to rank 2019-01-06 15:02:53 +01:00
Clément Renault
c74caa0f82
feat: Sum usizes instead of little u16/u32 2019-01-06 13:54:14 +01:00
Clément Renault
d899b86603
feat: Prefer using ranges and not using unreachable! 2019-01-06 13:54:14 +01:00
Clément Renault
0d07af3caf
fix: Filter and count the exact matching words 2019-01-06 13:54:13 +01:00
Clément Renault
c594597a01
feat: Introduce multiple Iterator impl for Matches 2019-01-06 13:54:13 +01:00
Clément Renault
ef7ba96d4a
feat: Introducing the Matches as_matches method 2019-01-06 13:54:13 +01:00
Clément Renault
d21406a939
feat: Allow Matches to be constructed 2019-01-06 13:54:13 +01:00
Clément Renault
039a9a4cc7
feat: Pre-compute matches query index groups 2019-01-06 11:11:55 +01:00
Clément Renault
7f5e6c5b6e
test: Add test to the DocumentKeyAttr slice repr 2019-01-02 21:48:58 +01:00
Clément Renault
c05fab783a
fix: Write and Read DocumentKeyAttr in big endian 2019-01-02 17:53:53 +01:00
Clément Renault
95dc6fe904
feat: Rework the UpdateBuilder struct 2019-01-02 17:53:52 +01:00
Clément Renault
1d67012aa5
chore: Clean up some database functions 2019-01-01 01:40:20 +01:00
Clément Renault
7845292ea8
chore: Clippy pass 2018-12-31 23:20:30 +01:00
Clément Renault
dfa19582a2
test: Add benchmarks to mesure the words proximity criterion 2018-12-31 21:18:42 +01:00
Clément Renault
87ec95f7a0
test: Add benchmarks to mesure the database 2018-12-31 21:18:37 +01:00
Clément Renault
20b5a6a06e
doc: Add examples for runtime defined data and Schema 2018-12-31 20:44:33 +01:00
Clément Renault
21bb38c3b0
test: Add more tests for updates ingestion 2018-12-31 19:27:21 +01:00
Clément Renault
64d53ee1bd
chore: Rework the data module structures
being able to be constructed from SharedData
2018-12-31 19:27:21 +01:00
Clément Renault
c022fa3fca
chore: Move serde related structs to their module 2018-12-31 19:26:28 +01:00
Clément Renault
0080bf486f
feat: Introduce the new Index structure
replacing the old ugly Blob system
2018-12-31 19:26:27 +01:00
Clément Renault
6bd779f9ae
feat: Improve the deserialization time of a Blob 2018-12-31 13:15:37 +01:00
Clément Renault
7132c3be89
feat: Allow filtering on QueryBuilder 2018-12-29 22:30:41 +01:00
Clément Renault
aa3d059363
feat: Allow filtering on DistinctQueryBuilder 2018-12-29 22:30:41 +01:00
Clément Renault
e2a9dbc404
feat: Introduce filtering methods for Distinct/QueryBuilder 2018-12-29 22:30:40 +01:00
Clément Renault
36ef9581aa
feat: Return the database view for each update 2018-12-29 21:07:01 +01:00
Clément Renault
f4b04dfb72
feat: Prefer doing DatabaseView updates atomically 2018-12-29 20:52:00 +01:00
Clément Renault
8412c14b5b
feat: Schema can be toml de/serialized 2018-12-28 19:24:50 +01:00
Clément Renault
b27f632e14
feat: Make the Attribute and WordArea errors recoverable 2018-12-28 16:15:22 +01:00
Clément Renault
fa238f21ef
feat: Move Database to its own module 2018-12-27 11:21:47 +01:00
Clément Renault
444a4c1af7
feat: Make the schema consider document ids 2018-12-27 11:21:47 +01:00
Clément Renault
b32c96cdc9
feat: Introduce a WordArea struct
Useful to highlight matching areas in the original text.
2018-12-24 15:58:46 +01:00
Clément Renault
4ebae7784c
feat: Create a strong DocumentId type
Forcing it to be something internal will permit to avoid possible miss comparisons to be done with other types.
2018-12-24 12:42:24 +01:00
Clément Renault
4a310c31ab
feat: Allow query distinct a range of documents 2018-12-18 14:00:30 +01:00
Clément Renault
d0ee5f12a0
feat: Introduce the BufferedDistinctMap struct 2018-12-18 14:00:30 +01:00
Clément Renault
7aafba67ed
feat: Allow querying a range of documents 2018-12-18 14:00:29 +01:00
Clément Renault
89c4af0cc2
chore: Clean up dependencies and avoid custom ones 2018-12-17 16:02:20 +01:00
Clément Renault
cdce016f7c
feat: Improve the Schema performances 2018-12-15 21:17:55 +01:00
Clément Renault
e15d5e6d93
feat: Improve the query distinct performances 2018-12-13 11:54:47 +01:00
Clément Renault
d3a67476e0
feat: Rename registers methods of DistinctMap 2018-12-13 11:54:09 +01:00
Clément Renault
5a2d8a2395
feat: Reexport the internal rocksdb 2018-12-13 11:52:34 +01:00
Clément Renault
df2b6a3e74
feat: Consider the last query word be a prefix
if the last word is not followed by a space.
2018-12-11 17:43:27 +01:00
Clément Renault
b5df87a403
feat: Introduce the Criteria type 2018-12-10 20:17:57 +01:00
Clément Renault
d615f89c56
feat: Introduce the SortBy help structure
This structure help ranking documents using stored attributes.
2018-12-10 20:17:52 +01:00
Clément Renault
23cce69dc5
feat: Introduce the CriteriaBuilder 2018-12-10 20:15:02 +01:00
Clément Renault
671bd3374f
fix: Break the proper loop when bucket sorting 2018-12-10 15:14:15 +01:00
Clément Renault
d8cfac914a
feat: Implement a better automaton builder
This new implementation only allows the last word of a query string to be a prefix.
2018-12-10 12:16:24 +01:00
Clément Renault
916b46c839
feat: Allow dumping the database, useful for full snapshot 2018-12-10 11:09:09 +01:00
Clément Renault
6cb1bfd815
feat: Use sdset Set primitives everywhere possible 2018-12-09 14:18:23 +01:00
Clément Renault
06ba82cfa8
feat: Database holds a DatabaseView and sync update ingestions 2018-12-09 13:42:56 +01:00
Clément Renault
0e825e05bb
feat: Make the DatabaseView become Sync + Send 2018-12-07 17:59:03 +01:00
Clément Renault
bec463a61a
fix: Update the DatabaseView to retrieve the index at creation
remove this computation from the QueryBuilder
2018-12-07 16:29:39 +01:00
Clément Renault
7c98771068
fix: Change the way the iterator upper bound is computed 2018-12-07 15:35:59 +01:00
Clément Renault
4626c77eac
fix: Change the way the BTreeMap store entries 2018-12-07 15:12:15 +01:00
Clément Renault
9342290afe
feat: Simplify the steps to query the database 2018-12-07 14:41:06 +01:00
Clément Renault
8bee31078d
chore: Update the module hierarchy 2018-12-07 12:22:51 +01:00
Clément Renault
2c3d71dd8f
fix: Improve the bucket sort algorithm 2018-12-07 11:53:17 +01:00
Clément Renault
731ed11153
feat: Index and store/serialize attributes while creating the update 2018-12-07 11:32:27 +01:00
Clément Renault
442834c28f
chore: Remove the MapSerializer temporarily 2018-12-06 17:23:01 +01:00
Clément Renault
b2cec98805
feat: Implemented a basic deserialiazation 2018-12-06 17:22:54 +01:00
Clément Renault
6c7a6c5219
feat: Implement DoubleEnded/ExactSizeIterator on DocumentIter 2018-12-06 17:22:25 +01:00
Clément Renault
6f8dbbde9a
feat: Implement the create/open/ingest_file Database methods 2018-12-06 17:22:20 +01:00
Clément Renault
42b0cf68eb
feat: Move the database Deserializer in its own module 2018-12-06 17:22:19 +01:00
Clément Renault
a5b80c72ae
feat: Move the DatabaseView in its own module 2018-12-06 17:22:19 +01:00
Clément Renault
8563c25d62
feat: Move DocumentKey/Attr to their own module 2018-12-06 17:22:19 +01:00
Clément Renault
3d0b334942
feat: Introduce the DocumentKey and DocumentKeyAttr structs 2018-12-06 17:22:07 +01:00
Clément Renault
700d625c93
feat: Introduce the Database and DatabaseView 2018-12-06 17:20:14 +01:00
Clément Renault
e559f7130c
feat: Replace the fnv hashmap by the hashbrown one 2018-12-02 13:11:02 +01:00
Clément Renault
51cc69342f
feat: Compacting "data-index" to avoid calling the merge operator 2018-12-02 13:06:07 +01:00
Clément Renault
c8aee7ed7a
fix: Make the merge operator work 2018-12-02 12:00:49 +01:00
Clément Renault
9a67db0989
test: Add some tests to DocIndexes 2018-12-02 12:00:49 +01:00
Clément Renault
5829d08bc0
chore: Avoid using the external library Itertools 2018-12-02 12:00:49 +01:00
Clément Renault
2719f1ad3b
feat: Introduce the PositiveUpdate 2018-12-02 12:00:49 +01:00
Clément Renault
8b2a8da8fa
feat: Remove the PositiveBlobBuilder 2018-12-02 12:00:49 +01:00
Clément Renault
ec5d17e8c2
feat: Implement the PositiveUpdate 2018-12-02 12:00:48 +01:00
Clément Renault
af791db23d
feat: Use the blob::OpBuilder to merge "data-index" blobs 2018-12-02 12:00:48 +01:00
Clément Renault
612a8d9d44
feat: Make the OpBuilder work only for PositiveBlob 2018-12-02 12:00:48 +01:00
Clément Renault
9b58ffe2d9
feat: Introduce the QueryBuilder struct 2018-12-02 12:00:37 +01:00
Clément Renault
b636e5fe57
feat: Introduce the "data-index" entry with merge compaction 2018-12-02 12:00:30 +01:00
Clément Renault
0e856db4e6
feat: Implement De/Serialize on Blob 2018-12-02 12:00:30 +01:00
Clément Renault
a43a772e9a
feat: Introduce typed keys constructors 2018-12-02 12:00:29 +01:00
Clément Renault
66dac923bf
feat: Introduce a working key-value based database 2018-12-02 12:00:29 +01:00
Clément Renault
86f23d2695
feat: Save the schema in the key-value store 2018-12-02 12:00:29 +01:00
Clément Renault
8df068af3c
feat: Introduce the Schema 2018-12-02 12:00:29 +01:00
Clément Renault
7c1a17520d
feat: Introduce the index module 2018-12-02 12:00:29 +01:00
Clément Renault
b3249d515d
feat: Introduce an Index system based on RocksDB 2018-12-02 12:00:29 +01:00