Vector Similarity search on numerial values (filter support?)

Hi, I need to implement a chat RAG system using Neo4JVector.
Each node represents a question-and-response pair.
The question part is encoded(embedded) and the response is simply stored in "metadata"
I would then do a similarity search on the questions and return the responses it finds.
But the problem is that there can be many different responses to the same question, for example,

(I'm quite new to Neo4j and I'm not sure how better to describe it other than showing a use case.)

Node1 - Q: Hi, how are you? R: I'm doing good.
Node2 - Q: Hi, how are you? R: So so.
Node3 - Q: Hi, how are you? R: I had better days.

To support a variety of responses, I need extra information, e.g., a "mood" meta value.
Depending on the "mood" value, it will return different responses.

Node1 - Q: Hi, how are you? [Mood=1.0] R: I'm doing good.
Node1 - Q: Hi, how are you? [Mood=0.5] R: So so.
Node1 - Q: Hi, how are you? [Mood=0.1] R: I had better days.

As you can see the question includes the "mood" value but the similarity does not work on numeric values. It doesn't know what the values, 1.0, 0.5, and 0.1 mean and it seems to just generate embedding vectors based on strings.

I think this is the limitation of how embedding works, outside of Neo4j

So, I need to find another way.

My current attempt is to add the mood value in "metadatas" and figure out how to add a filter on "metadatas" after the similarity search.

I guess, I can have it return many nodes and then do a filter on "metadatas" but I think this will be very inefficient.

So, my question is... Are there ways to extend the similarity search to take account of some filters?

I hope you get the idea and please let me know how this can be done.

Many thanks.