Ah, thanks Mayya. I'd overlooked this one line of code: https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraphBuilder.java#L160
That makes sense. Thanks again for the explanation! Cheers, -Greg On Mon, Feb 21, 2022 at 1:19 AM Mayya Sharipova <mayya.sharip...@elastic.co.invalid> wrote: > > Hello Greg, > This code is a close implementation of the original HNSW paper. > > Multiple entry points in HnswGraphSearcher are used during a graph > construction in HnswGraphBuilder for levels <= nodeLevel. > In this case the number of entry points is equal to beamWidth. > Closest neighbors found the previous layer are used as entry points for the > current layer. > > I hope this answers your question. > > > > On Sat, Feb 19, 2022 at 3:59 PM Greg Miller <gsmil...@gmail.com> wrote: >> >> Hi folks- >> >> I've been poking around some of the HNSW code out of curiosity and I >> noticed that the HnswGraphSearcher#searchLevel methods accept an array >> of entry point nodes (int[] eps), but as far as I can tell, only one >> entry point is every provided (from both HnswGraphSearcher and >> HnswGraphBuilder). Is there actually a use-case for executing a search >> using multiple entry points? I ask purely out of curiosity and trying >> to build up my own understanding in this space. >> >> I tried searching the dev list and Jira issues for anywhere this might >> have been discussed and came up empty, but apologies if there's a >> thread about this somewhere I missed. >> >> Cheers, >> -Greg >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >> For additional commands, e-mail: dev-h...@lucene.apache.org >> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org