? on using Metadata?

In the examples:

docs = vectordb.similarity_search(
    question,
    k=3,
    filter={"source":"docs/cs229_lectures/MachineLearning-Lecture03.pdf"}
)
- and - 
metadata_field_info = [
    AttributeInfo(
        name="source",
        description="The lecture the chunk is from, should be one of `docs/cs229_lectures/MachineLearning-Lecture01.pdf`, `docs/cs229_lectures/MachineLearning-Lecture02.pdf`, or `docs/cs229_lectures/MachineLearning-Lecture03.pdf`",
        type="string",
    ),
    AttributeInfo(
        name="page",
        description="The page from the lecture",
        type="integer",
    ),
]

can I have these be any attribute (str, int) - e.g.: name=“questions_it_can_answer” questions=“What nematodes kill fungus gnats? Who is Jeff Lowenfells?” does the retriever go - got it! I’ll use this “questions_it_can_answer” As a filter when I am evaluating all these chunks…??? And if that is true, it makes more sense for different “questions_it_can_ansewr” to be on each chunk (instead of the same across documents as is the case of filter={"source":"docs/cs229_lectures/MachineLearning-Lecture03.pdf"}? It makes intuitive sense that if we could provide more insite to what is in a chunk when there are so many chunks, the retrieval would be better if we only retrieve a few? I am looking for insight/clarification. Thank you.