Open
Description
When you call index.add
with an existing ID but a new vector, Voyager will correctly locate the correct spot in the graph to place the new vector and update all of the existing connections. However, the StringIndex
abstraction does not support this behavior. As written, the string index will add a new vector and new ID if index.add
is called with a name that is already present in the index, instead of updating the existing one.
Instead of adding a new item and keeping the old one around, Voyager should check the existing items list and update the underlying index accordingly with the new vector value so we don't end up with duplicate items in the index.