Commit Graph

171 Commits

Author SHA1 Message Date
Dirkjan Ochtman c03cec4458 Fix neighbor updates for heuristic searches 2021-01-19 10:47:35 +01:00
Dirkjan Ochtman 58a7162d0a Simplify selection return value invariants 2021-01-19 10:47:01 +01:00
Dirkjan Ochtman 9e302d7dbe Fix ef value for insertion Searches 2021-01-19 10:45:41 +01:00
Dirkjan Ochtman 4c7caaf436 Simplify accessing zero nodes 2021-01-18 10:37:34 +01:00
Dirkjan Ochtman 1b70dcf743 Fix formatting 2021-01-14 18:29:39 +01:00
Dirkjan Ochtman 6dc83caabe Improve heuristic neighbor selection 2021-01-14 17:01:31 +01:00
Dirkjan Ochtman 47f26978f5 Simplify handling of ef parameters 2021-01-14 16:55:47 +01:00
Dirkjan Ochtman b865f2f287 Remove unused trait and impls 2021-01-14 16:53:22 +01:00
Dirkjan Ochtman f577dec212 Move neighbor selection into insert() 2021-01-13 17:07:24 +01:00
Dirkjan Ochtman eb7b9aafb3 Bump M to 32 2021-01-12 16:35:47 +01:00
Dirkjan Ochtman 619ea8a561 Make code compile again without serde 2021-01-12 16:35:41 +01:00
Dirkjan Ochtman e81d838f42 Fix formatting with cargo fmt 2021-01-12 14:39:22 +01:00
Dirkjan Ochtman 27d5e9b522 Fix serde support for larger ZeroNodes 2021-01-12 14:33:31 +01:00
Dirkjan Ochtman 04094ce06f Bump M up to 24 2021-01-12 13:37:07 +01:00
Dirkjan Ochtman 581b3a17e2 Simplify heuristic selection code 2021-01-12 13:31:51 +01:00
Dirkjan Ochtman d265ef7c29 Don't use heuristic selection for test 2021-01-12 13:31:40 +01:00
Dirkjan Ochtman c1e5acf35c Generalize Layer implementations 2021-01-11 21:13:17 +01:00
Dirkjan Ochtman 7bfca28d85 Add support for selection heuristic 2021-01-11 21:05:17 +01:00
Dirkjan Ochtman 09dd8d886b Make selection phase explicit in the code 2021-01-11 12:38:40 +01:00
Dirkjan Ochtman 19e451bac2 Default M to 12 2021-01-11 09:33:27 +01:00
Dirkjan Ochtman 0872d04665 Lower recall threshold to prevent spurious test failures 2021-01-07 21:44:11 +01:00
Dirkjan Ochtman df24ddc186 Test recall in randomized test 2021-01-07 21:38:53 +01:00
Dirkjan Ochtman 6def318423 Stick closer to algorithm 2 from the paper 2021-01-07 21:19:56 +01:00
Dirkjan Ochtman f01ed4a4a0 Re-order some code 2021-01-07 20:58:35 +01:00
Dirkjan Ochtman e6d200954e Discard empty layers 2021-01-07 20:55:08 +01:00
Dirkjan Ochtman e3c0224dc2 Update status with current layer 2021-01-07 20:53:21 +01:00
Dirkjan Ochtman f61659cca5 Search in appropriate layer during construction 2021-01-07 16:00:56 +01:00
Dirkjan Ochtman bd9c3f3897 Sort nearest neighbors after pushing batch peers 2021-01-07 16:00:41 +01:00
Dirkjan Ochtman d7c33e9e8f Keep track of candidate order using BinaryHeap 2021-01-07 15:59:41 +01:00
Dirkjan Ochtman 459f5e4d65 Tweak style 2021-01-07 15:58:46 +01:00
Dirkjan Ochtman db1d3128ec Add more extensive randomized test 2021-01-07 15:51:59 +01:00
Dirkjan Ochtman c4708ac032 Fix bug in discarding potential candidates 2021-01-07 14:15:03 +01:00
Dirkjan Ochtman df8388a8a1 Add API to set the seed for the RNG 2021-01-07 14:14:19 +01:00
Dirkjan Ochtman 4b3cb28820 Use more idiomatic way of generating random numbers 2021-01-07 11:23:42 +01:00
Dirkjan Ochtman a3f07f790f Move integration test into tests dir 2021-01-07 11:20:23 +01:00
Dirkjan Ochtman d02deec46b Remove obsolete comment 2021-01-07 11:16:50 +01:00
Dirkjan Ochtman 809fb0d192 Make mL parameter configurable 2021-01-07 11:07:09 +01:00
Dirkjan Ochtman abe24f3160 Upgrade to rand 0.8 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman 3feb763d92 Add some documentation for the Builder type 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman d3f07fcad1 Simplify API some more 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman d42bf8adc9 Rename num argument to Layer::search() to links 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman 3241070758 Rename Search::num to ef 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman 5ceebde417 Increase batch size 2020-12-16 06:47:13 -08:00
Dirkjan Ochtman 9d959fce06 Implement parallel index construction 2020-12-16 13:51:24 +01:00
Dirkjan Ochtman e1f6b666c9 Slightly simplify search output loop variable 2020-12-16 12:43:51 +01:00
Dirkjan Ochtman ad60d38279 Deduplicate check for layer zero 2020-12-16 12:42:55 +01:00
Dirkjan Ochtman 1871b61b08 Make Search::reset() more robust to future changes 2020-12-16 12:39:28 +01:00
Dirkjan Ochtman 098a4e4ef6 Reset furthest value in Search 2020-12-16 12:05:02 +01:00
Dirkjan Ochtman b20f4efeae Reduce boilerplate in trait implementations 2020-12-16 12:03:46 +01:00
Dirkjan Ochtman fbfefdba6f Add Hnsw::iter() method 2020-12-16 12:03:46 +01:00