1041 Commits

Author SHA1 Message Date
kishorenc
89690101ae Make route_hash unsigned. 2020-04-01 18:30:06 +05:30
kishorenc
dd290884e5 Remove replication updates API. 2020-03-30 20:51:04 +05:30
kishorenc
3b3d9cfb01 Fix a route ordering issue introduced by using unordered map. 2020-03-26 21:12:17 +05:30
kishorenc
8829c5aebc Allow customization of peering address.
This is an optional argument since Typesense automatically tries to bind on an internal IP. One needs to specify this only when there are multiple internal IPs.
2020-03-26 17:39:42 +05:30
kishorenc
75a1fe1e1d Use hashmap for storing routes instead of an array.
The use of array index makes rolling updates tricky since requests might be forwarded to an instance running an older/newer version having a different route index.
2020-03-26 14:08:06 +05:30
kishorenc
88192820de Free leaf indices during early return. 2020-03-26 14:05:59 +05:30
kishorenc
d3af2bff39 Drop support for rocksdb based replication. 2020-03-26 08:08:41 +05:30
kishorenc
8bfeeeb2ee Fix forwarding of delete operations. 2020-03-25 21:31:56 +05:30
kishorenc
901795869d Fix API server kicking in early before init readiness. 2020-03-25 08:48:01 +05:30
kishorenc
43231eaae3 Only start API service when peering service is stable. 2020-03-23 21:38:41 +05:30
kishorenc
3cb4c3a3b6 Reject writes to a follower when there is no leader. 2020-03-23 19:21:25 +05:30
kishorenc
b16614eb20 Follower should forward write requests to leader. 2020-03-23 08:53:58 +05:30
kishorenc
1cd9793d69 Reject writes to followers. 2020-03-20 22:31:40 +05:30
kishorenc
e057b64d9d Migrate to butil logger. 2020-03-20 16:49:26 +05:30
kishorenc
c982335bdd Fix tests. 2020-03-17 07:53:41 +05:30
kishorenc
df08df5d96 Exit cleanly from raft service on validation errors. 2020-03-17 07:43:22 +05:30
kishorenc
123888d4d3 When no --peers arg is given, start single node cluster. 2020-03-15 20:33:13 +05:30
kishorenc
637ba52769 Delete DB cleanly before restore. 2020-03-15 18:52:26 +05:30
kishorenc
b7f9a2ca28 Handle import of raw db data into snapshot. 2020-03-15 17:08:44 +05:30
kishorenc
a52ec80999 Handle presence/absence of snapshot.
Still need to handle import of raw db data into snapshot.
2020-03-15 16:11:29 +05:30
kishorenc
b81ce1062d Basic write replication is working. 2020-03-11 22:31:17 +05:30
kishorenc
a975f39685 Refactor http code to remove circular references. 2020-03-11 16:13:14 +05:30
kishorenc
eb0c66d778 Basic raft clustering is working.
Still need to handle actual stateful operations.
2020-03-08 21:22:48 +05:30
kishorenc
206fe5b833 Expose typo_tokens_threshold parameter.
If the number of results found for a specific query is less than this number, Typesense will attempt to look for tokens with more typos until enough results are found.
2020-03-07 12:31:05 +05:30
kishorenc
eef3a5a3de Handle optional field for legacy records. 2020-03-07 08:59:38 +05:30
kishorenc
c7eb19ca46 Insist on API key authentication even for search end-point.
Server can be started with a separate `--search-only-api-key` argument for exposing this key on the JS client.
2020-03-06 12:46:49 +05:30
kishorenc
1ab25b9d16 Persist optional field value and restore during restart. 2020-03-06 07:38:46 +05:30
kishorenc
6c8e62a61b Allow fields to be marked as optional in the schema.
Downside: optional fields cannot be used for sorting or marked as default sorting field.
2020-03-05 21:56:05 +05:30
kishorenc
5e1c5f2093 Ditch use of number_t for sorting. 2020-03-05 08:03:01 +05:30
kishorenc
eed10d554d Sort results on custom order. 2020-03-04 20:27:33 +05:30
kishorenc
7b342c7c73 Refactor number_t to use a single int64_t as store. 2020-03-04 06:23:50 +05:30
kishorenc
63ecc841b5 Return fully highlighted values for specified fields.
Via the `highlight_full_fields` parameter.
2020-03-02 20:50:11 +05:30
kishorenc
31e9e4719a Compute stats on all facet values regardless of facet query. 2020-03-01 21:18:45 +05:30
kishorenc
9622d59996 Parameterize snippet_threshold for highlighting.
Strings under this length will be fully highlighted, instead of showing a snippet.
2020-02-27 18:50:31 +05:30
kishorenc
8a24d047ec Compute facet stats for numerical fields. 2020-02-27 14:27:43 +05:30
kishorenc
95c8fb7082 Allow non-string fields to be facetable. 2020-02-26 22:59:01 +05:30
kishorenc
991bf03bcb Only the last facet query token must be treated as prefix. 2020-02-23 11:52:11 +05:30
kishorenc
2dfec18811 Fix comparator for facet sorting. 2020-02-23 08:13:37 +05:30
kishorenc
1369a473e4 Facet query partial highlighting + tests. 2020-02-22 21:43:57 +05:30
kishorenc
38bac77c43 Bug fix: incomplete string array deletion. 2020-02-22 17:30:14 +05:30
kishorenc
712d962cac WIP: Highlight facet query results 2020-02-21 21:45:28 +05:30
kishorenc
654811f4a3 For facet query, let max_hits default to 0. 2020-02-21 12:48:03 +05:30
kishorenc
7943839de2 Delete kvs. 2020-02-18 21:35:22 +05:30
kishorenc
67c2169b88 Fixed an issue with facet query containing multiple tokens. 2020-02-18 20:30:15 +05:30
kishorenc
4fa89ebf00 Implement facet filtering. 2020-02-17 21:59:47 +05:30
kishorenc
dfbe3888d8 Refactor facet search to use hash based mapping.
Also fixed a bug where filter fields marked as facets were being searched only verbatim.
2020-02-16 17:41:17 +05:30
kishorenc
8900347eed Add some comments to improve readability. 2020-02-15 18:25:32 +05:30
kishorenc
b14cd3edca Address some warning. 2020-02-11 20:19:46 +05:30
kishorenc
fd285b6fbe Allow maximum hits returned to be configurable.
This obviously has a performance impact, but it might not be a big deal for most people and is now left to their discretion. The default of 500 results stays to maintain backward compatibility.
2020-02-10 20:54:38 +05:30
kishorenc
cf26a16903 Improve logging for replication errors. 2019-11-20 20:05:51 +05:30