Skip to content

Commit

Permalink
Add last update field to index metadata, closes #236
Browse files Browse the repository at this point in the history
  • Loading branch information
davidmezzetti committed Mar 1, 2022
1 parent 378fb4e commit 029210c
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 11 deletions.
23 changes: 14 additions & 9 deletions src/python/txtai/ann/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,22 +114,27 @@ def setting(self, name, default=None):
setting = backend.get(name) if backend else None
return setting if setting else default

def metadata(self, settings):
def metadata(self, settings, update=False):
"""
Adds index build metadata.
Args:
settings: index build settings
update: True if this is a metadata update, False otherwise
"""

# ISO 8601 timestamp
create = datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")

# Set build metadata
self.config["build"] = {
"create": create,
"python": platform.python_version(),
"settings": settings,
"system": f"{platform.system()} ({platform.machine()})",
"txtai": __version__,
}
# Set build metadata if this is not an update
if not update:
self.config["build"] = {
"create": create,
"python": platform.python_version(),
"settings": settings,
"system": f"{platform.system()} ({platform.machine()})",
"txtai": __version__,
}

# Set last update date
self.config["update"] = create
3 changes: 2 additions & 1 deletion src/python/txtai/ann/faiss.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ def append(self, embeddings):
# Append new ids - position in embeddings + existing offset is used as the id
self.model.add_with_ids(embeddings, np.arange(self.config["offset"], self.config["offset"] + new, dtype=np.int64))

# Update id offset
# Update id offset and index metadata
self.config["offset"] += new
self.metadata(None, True)

def delete(self, ids):
# Remove specified ids
Expand Down
3 changes: 2 additions & 1 deletion src/python/txtai/ann/hnsw.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ def append(self, embeddings):
# Append new ids - position in embeddings + existing offset is used as the id
self.model.add_items(embeddings, np.arange(self.config["offset"], self.config["offset"] + new))

# Update id offset
# Update id offset and index metadata
self.config["offset"] += new
self.metadata(None, True)

def delete(self, ids):
# Mark elements as deleted to omit from search results
Expand Down

0 comments on commit 029210c

Please sign in to comment.