Faiss (в Python), как добавить новый элемент в индекс после создания индекса?
Библиотека Facebook Faiss для Python позволяет создать индекс заранее определенной формы, а затем добавлять в него данные.
index = faiss.IndexFlatIP(X.shape[1])
index.add(X)
куда
X
это
numpy.array
типа
np.float32
Скажем, я создаю приложение, в котором документы кодируются как векторы и хранятся в индексе faiss. Когда клиент вводит новый документ,
doc
(т.е. новый массив формы (1, X.shape[1])), я хочу добавить его в
index
. Я искал документы и другие вопросы, но не могу найти другого решения, кроме:
X = np.concatenate((X, doc), axis=1)
index = faiss.IndexFlatIP(X.shape[1])
index.add(X)
Но это означает повторный пересчет присвоенного индекса. Есть ли более эффективный способ сделать это?