iverase commented on issue #14127: URL: https://github.com/apache/lucene/issues/14127#issuecomment-2605324971
> Thanks for the test case @iverase, but I was able to reliably repro using the existing test case. These tests are pretty slow so I'd just as soon not add too many more, unless you think there is some new thing tested by that? I just wanted to prove that the issue is not related with the new stuff you added and can be reproduced with a very simple test. No need to commit it. It helped me to reproduce it with a very low number of nodes so I could study it better. and I had another look and these are my observations: In this [line](https://github.com/apache/lucene/blob/f2e7ae40af0b28b1d5f2edc31f8858229a8523f4/lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraphBuilder.java#L437) we create a list of components. If I understand correctly a component contains a list of nodes that are connected between them and it provides and entry node and the number of nodes it contains. I assume that two components are disconnected. A bit below we tried to connect two components by making a [search](https://github.com/apache/lucene/blob/f2e7ae40af0b28b1d5f2edc31f8858229a8523f4/lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraphBuilder.java#L469) of the closest nodes from one component (c0) to the start of the other component (c1). In theory that search should return two nodes from c0 that do not exist in c1. When it fails, it easy to prove that this search is returning neighbours from c1 when it shouldn't. Is that observation right? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
