-
Notifications
You must be signed in to change notification settings - Fork 56
Forcemerge and deleted graph nodes #353
Comments
Is a full merge required or will setting only_expunge_deletes to True achieve the same result? i.e, delete the marked nodes and "fix" links. I'm assuming no, since graphs are rebuilt only when segments are merged.
Is there a way to run forcemerge without the risk of ending up with a big segment that will be ignored during future merges?
If I dont force merge, will the graphs get rebuilt when ES "periodically" merges the segments? Unfortunately, I can't find much info about what "periodically" means. If I dont write to the index, but there are some deleted nodes, will the cleanup eventually happen?
Is it possible to estimate how much the recall will be affected as the number of marked nodes increase?
|
If graphs are only rebuilt when segments are merged, what would happen when forcemerge is run with Also, do you think my concern of nodes marked for deletion impacting ANN recall is not valid? According to this post, search wouldn't be affected even if a lot of nodes are marked for deletion. If so, will recall of say top 10 neighbors also not be affected? |
Recall could be impacted based on the percentage of deleted docs/nodes in the graph. Its hard to exactly determine the impact on recall. If the deleted nodes happen to be the nearest neighbors to the query, then recall could be impacted. One solution for this problem is to consider large For Example: If I would like to get 5 neighbors to my query, I would chose size=5 and Query to retrieve 5 nearest neighbors would look something like
|
This plugin rocks! Thank you!
I have a question regarding graph nodes marked for deletion. From reading HNSW's Github issues, I understand that nodes are discoverable even if their neighbors are all deleted. However, I assume that the kNN recall would drop as the deleted nodes pile up. I'd want to periodically rebuild the graphs to maintain high recall.
The recommendation in OpenDistro documentation is to forcemerge to 1 segment. However, I don't want to do this since
Assuming the above points are correct,
only_expunge_deletes
to True achieve the same result? i.e, delete the marked nodes and "fix" links. I'm assuming no, since graphs are rebuilt only when segments are merged.The text was updated successfully, but these errors were encountered: