Sorry in advance if I have overlooked relevant docs.
Question 1: Indexes and performance
In SQL, it’s common to add field created_by
and created_time
to records. We have a lightweight RAG app, and while I understand Weaviate shouldn’t be the source of truth, it’s the only DB in the system. Will adding these fields add overhead to the DB performance (ie. they are indexed)?
In general, are all schema fields indexed? If so, that adds memory overhead, right?
Question 2: Batch deletes and ID lookups
Is there any speed advantage to doing batch deletes by ID? If so, what is the syntax? You show how to do it with an arbitrary where (Delete objects | Weaviate - vector database)
client.batch.delete_objects(
class_name='EphemeralObject',
where={
'path': ['name'],
'operator': 'Equals',
'valueText': 'foo-record'
},
)
I am trying to delete 15 or so records. I have their IDs, but can also delete them by Name as shown above. Traditional DB systems are more performant if removing by ID (the primary key). But what is the optimal way to do it in weaviate?
How does Equals
performance compare to doing a containsAll
delete of a list of IDs (is that even possible)?