Kishore Nallan
0e4517d901
Combine search, facet and sort fields into a single "fields".
...
1. All numerical fields are added to sort index automatically since that makes logical sense.
2. Search fields to be used as a facet are to have a `facet: true` property - removes duplication.
3. If someone wants to use a faceted field also to search against (rare scenario), then they can duplicate that field without the `facet: true` property.
2017-10-17 21:51:07 +05:30
Kishore Nallan
e24e0fae5d
Node score should be a int32_t.
2017-09-21 19:40:41 +05:30
Kishore Nallan
b2f0ca495d
Refactor a couple of methods in collection manager.
2017-09-21 16:55:15 +05:30
Kishore Nallan
9c1a8a2364
Defensive checks against JSON parse failures.
2017-09-21 08:42:07 +05:30
Kishore Nallan
901626652a
Make type definitions less verbose.
...
Use string[] instead of STRING_ARRAY and so on.
2017-09-19 22:01:08 +05:30
Kishore Nallan
6ab58d1839
Added a dispose() method for freeing collection manager's in-memory data.
2017-09-18 12:35:37 +05:30
Kishore Nallan
7220a9e51d
Cleanly exit server on sigint.
...
Valgrind "definitely lost" and "indirectly lost" are zero now.
2017-09-17 13:59:47 +05:30
Kishore Nallan
58bc73312d
Replicate deletion of document and dropping of collection.
2017-09-14 22:44:29 +05:30
Kishore Nallan
58a10877ee
Basics of background replication.
...
Supports inserts. Deletion will be tackled next.
2017-09-14 09:58:44 +05:30
Kishore Nallan
3febb7840a
Generalize the custom message struct such that it can support multiple types of messages and values.
2017-09-10 15:48:41 +05:30
Kishore Nallan
ea246f1c45
Collect and send replication updates in an async fashion.
...
This ensures that the query performance is not affected by replication running constantly in the background.
2017-09-02 15:56:07 +05:30
Kishore Nallan
6a465a0289
API for fetching all transactions from a given transaction sequence number.
...
Relying on RocksDB underlying APIs for that. The updates are sent in a Base64 encoding in the JSON response.
2017-08-31 09:42:11 +05:30
Kishore Nallan
7509de2300
Upgrade H2O + fixed core dump on Linux release build.
...
Core dump on Linux on release build (debug build is fine) when `h2o_accept_ctx_t` was stack allocated.
2017-08-21 12:30:48 +05:30
Kishore Nallan
d351523655
Allow results to be sorted on a float field.
2017-08-20 21:15:48 +05:30
Kishore Nallan
3104dea42a
Generify the topster container to hold both integer and float.
...
Benchmarked to ensure that performance is on par.
2017-08-20 15:25:11 +05:30
Kishore Nallan
f5848be750
Address prefix search issues.
...
Score based comparison was broken - test has been enhanced.
2017-08-18 23:17:28 +05:30
Kishore Nallan
e384b777a1
Collection operations on float fields.
2017-08-10 18:20:58 -04:00
Kishore Nallan
a2f475d7fc
Enable ART to index and search on floating point numbers.
2017-08-09 18:17:26 -04:00
Kishore Nallan
6a6785ef74
Short circuit to speed up single token searches.
...
- Refactor token position population
- Store only the query index in topster instead of storing the full offsets.
- Calculate the offsets finally on the results that are to be returned.
2017-08-08 17:39:23 -04:00
Kishore Nallan
ce69dbb371
Remove all static variables in http server so that it can be reused.
2017-07-30 08:48:52 +05:30
Kishore Nallan
e066beb870
Move http data structs to a separate header.
2017-07-29 22:31:24 +05:30
Kishore Nallan
3e54cb4022
API for summary of a collection, including the number of documents indexed in the collection.
2017-07-29 11:46:55 +05:30
Kishore Nallan
916aaf6526
API for fetching a document ID and listing all collections.
2017-07-28 20:39:51 +05:30
Kishore Nallan
005b637f74
Send 401 rather than 403 when API key is incorrect.
2017-07-26 21:11:02 +05:30
Kishore Nallan
ffba0371b0
Proper API responses when pagination exceeds result boundaries.
2017-07-07 18:36:56 +05:30
Kishore Nallan
be0a222ccb
Expose drop colllection API.
2017-07-06 08:45:31 +05:30
Kishore Nallan
c471cd50c3
Implement authentication against an API auth key.
...
The key should be passed via X-API-KEY HTTP header.
2017-07-04 22:18:47 +05:30
Kishore Nallan
8295707ed4
Allow pagination of results.
...
`page` and `per_page` can be specificed. Simpler to reason about than using the usual `start` and `offset` fields.
2017-06-15 17:14:10 +05:30
Kishore Nallan
57e03efe1f
Contexual snippet only for longer strings.
...
Strings under a defined constant token length will be fully highlighted, instead of showing a snippet of relevant matching portion.
2017-06-14 08:53:23 +02:00
Kishore Nallan
3efaed15b8
Fixed a few bugs with calculation of best matched token offsets to be used for highlighting.
2017-06-13 12:03:24 -05:00
Kishore Nallan
50e08726da
String field tokens which match with query tokens are highlighted in the results.
2017-06-09 14:59:06 -05:00
Kishore Nallan
1d5146f7ff
Track best-matched token offsets needed for highlighting.
...
- We store the best matched token offset positions in Topster KV
- Using run-length encoding (via unions) to pack the offset diffs intelligently
2017-06-09 13:32:03 -05:00
Kishore Nallan
0b9d5e386a
Pass program arguments for listen address and port into http server.
2017-05-29 20:41:46 +05:30
Kishore Nallan
b7bc974b8e
Expose token ranking field properly via the API.
2017-05-27 14:02:32 +05:30
Kishore Nallan
7531f9b13c
Add const
in more places.
2017-05-22 18:59:14 +05:30
Kishore Nallan
61bfdf027b
Fix valgrind errors, plugging other leaks.
2017-05-21 15:59:16 +05:30
Kishore Nallan
0bb8cf13bf
Ensure that remove function really removes all auxillary indexing data structures.
2017-05-20 17:02:14 +05:30
Kishore Nallan
a5cd45e362
Rewrite facet implementation.
2017-05-20 13:25:56 +05:30
Kishore Nallan
3478aef573
API for deleting a document by ID.
2017-05-17 20:31:24 +05:30
Kishore Nallan
56c539d0df
Expose search, sort and facet fields to the API.
2017-05-16 20:55:06 +05:30
Kishore Nallan
a25d2f590d
Sort order is required only during query time.
2017-05-14 17:36:48 +05:30
Kishore Nallan
1992d92eaf
Tests for asc/desc sort order.
2017-05-14 12:25:59 +05:30
Kishore Nallan
060959ad70
Fixed wrong found
counts.
2017-05-13 22:31:56 +05:30
Kishore Nallan
f62247cd32
Make the sort_fields
take order of sorting.
2017-05-07 21:33:04 +05:30
Kishore Nallan
1baaa2b344
API - creating a new collection.
2017-04-29 17:39:42 +05:30
Kishore Nallan
a82765277f
Typesense API skeleton.
2017-04-28 21:08:45 +05:30
Kishore Nallan
01871cc279
Http server skeleton.
2017-04-15 11:41:53 +05:30
Kishore Nallan
8850f8b169
Patch RocksDB build to ensure that it links against only specific libraries.
2017-04-07 08:58:29 +05:30
Kishore Nallan
c698c3be1a
Fix a few compile warnings/errors.
2017-03-30 18:25:37 +05:30
Kishore Nallan
70dda716c5
Parameterize the token ordering field.
2017-03-26 21:26:01 +05:30