nitirajrathore commented on issue #12627:
URL: https://github.com/apache/lucene/issues/12627#issuecomment-1800972146

   Hi @msokolov ! Thanks for clarifying. But I think it can help to remove the 
'less important' edge from both sides, since it frees up a degree of "other" 
node to accept a new connection without indulging into diversity check. Most of 
the time the problem that I saw with diversity check is that, the most recently 
added connection to the node itself turns out to be non-diverse and gets 
removed immediately. Because of this the new incoming node does not even get 
enough connections to begin with in the graph. Even in the case where I removed 
the diversity check while connecting incoming node (a) to neighbours (say b,c) 
and allow full max-conn number of connections, most of the connections from 
neighbours (b->a) to the nodes are removed because of diversity check, leaving 
mostly half connections from (a->b). Now when a new node say `x` tries to 
connect to `a` even that is kicked off by `a` because of diversity check. So 
keeping half connections sometimes acts against the connectedness n
 ature of hnsw.
   I have come up with a new huristic which seems to work well against 
disconnectedness, but I am yet to optimize it and conduct performance test on 
it. Will still update the algorithm here and post numbers later.


-- 
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: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to