I would like to use vector/hybrid/filter search but combine or “boost” a rank based off of recency - or perhaps another metric like “views” or “likes”. This way searches that are more recent can be boosted.
Am I wrong - I thought “reranking” only re-ranks results in the returned group - not over the whole search?
This is useful when searching for news - as people want to get close to their search but usually prefer recent news over exact match 20 yrs ago.
Indeed the rerank will only “rerank” the results from the query.
I am not sure how such a query can be achieved, as the vector search will bring the closest object to your query, and adding a second argument, date based, will invalidate the first query, as they will be now sorted by date and not by similarity
One possible way is to autocut the closest results and reorder them by date/views/likes.
So the ending query will be the closest objects, trimmed by autcut, and reordered by that second argument, which is different from having this as a weight on the results.
What other databases can accomplish is to “boost” weights with other properties - I don’t know weaviate under the hood - but it would make sense is to calculate distance to the vector - but also “add” to that value with another property’s match. Ie: allow additional filter:
Perhaps an “autocut” on boost to allow the databse to run smoothly, so that the 10Kth result can’t be boosted to the top; otherwise that might break/drag the database.
If this is not at all possible - it might be a good idea to at least show a way of doing this on the client efficiently - which might be my only option as of now.
On that thread the idea is to apply a bm25 after to reinforce some properties, but that “intentional bias” could also be extended to other late reinforcement other than a bm25, like in your case, taking into account a datetime property.
This is a good feature request. Do you mind opening one in our GH so we can keep track in our roadmap?