Announcing Hybrid Search support via $rankFusion!

Hello there! :wave:

We’re excited to announce that we are improving our support for hybrid search use cases via a dedicated aggregation stage called $rankFusion, entering into public preview today.

You will now be able to easily combine $search and $vectorSearch pipelines into a single $rankFusion pipeline that can weigh and combine their results into a single ordered list. This was previously achievable via composing many stages together including $unionWith, $group, $unwind and should now be much simpler to build. Beyond hybrid search, the native support for fusing ranked result sets also allows for performing multiple vector search, combining vector search with other aggregation stages like $geoNear, and more. These capabilities are all available to all Atlas clusters on MongoDB v8.1, and should be made available soon on 8.0 as well.

You can learn more in our hybrid search docs section here and the announcement blog here.

Also please let us know what you think of this feature here, thanks!

1 Like

Hello @Henry_Weller , that sounds great! Is there a ticker/news channel were you can get informed if $rankFusion is available for 8.0 :slight_smile: ?

Hi @Matthias_Uhlig! We should have 8.0 backported later this fall. We will update all of our docs and I will also indicate on this thread that it is supported

2 Likes

It looks like $rankFusion is only supported on MongoDB 8.1+

Hi @Henry_Weller ! I’am testing the Hybrid Search using $rankFusion in an M0 cluster and having the following error (regardless of using python or mongosh): “$rankFusion is not allowed or the syntax is incorrect, see the Atlas documentation for more information”

Is it linked to the the cluster version?

@Samuel_Ngambi In Python you can check your Cluster Version with

client = MongoClient(uri="...")
client.server_info()

Hello all!

We are very excited to announce a raft of features that extend our support for building hybrid search experiences. :mag:

  1. $scoreFusion is now supported on the newly released MongoDB 8.2. This is another stage that can be used for hybrid search workloads that allows composing subpipeline’s results considering result scores, not just their ranks. This allows for more granular hybrid search pipelines to be designed. $rankFusion will continue to be supported in 8.2 as well, and you can learn more about how to upgrade to latest rapid releases here.
  2. Both $rankFusion and $scoreFusion, along with $search and $vectorSearch, are now available as a part of the newly announced public preview for MongoDB Search and Vector Search on Community Edition and MongoDB Search and Vector Search on Enterprise Server. This will also be leveraging version 8.2+, and you can learn more about this in the launch blog here.
  3. We are in the process of rolling out a new version of 8.0 across the Atlas fleet that has support for $rankFusion, which should wrap up later this Fall. If you need access sooner, follow the instructions here to get access.

You can find more detail about the new hybrid search features in our blog here and docs here. Thanks!

1 Like