My goal is to allow filtering by tag and by date range. To do that we allow documents to be submitted with an optional array of tags, an optional start time and an optional end time. Tags and start end dates propagate by taking the union of the documents values to knowledge base entries and relations.
Filtering by tag while doing vector lookup can very likely be supported by: Qdrant, Milvus, PostgreSQL, MongoDB, OpenSearch. Others will need to overfetch and filter.
Querying is modified to support only returning chunks and knowledge base entries and relationships that have overlap, are contained or are a superset of the query daterange. Queries without required / forbidden tags and date ranges return the same data as they do now.
The full plan also adds a json metadata field that's not queryable and is transparantly returned when querying but it's not needed for this change.