RRF is a simple and effective means of fused ranking for multiple recall.
Within our open source RAG product RAGFlow(<a href="https://github.com/infiniflow/ragflow">https://github.com/infiniflow/ragflow</a>), Elasticsearch is currently used instead of other general vector databases, because it can provide hybrid search right now. Under the default cases, embedding based reranker is not required, just RRF is enough, while even if reranker is used, keywords based retrieval is also a MUST to be hybridized with embedding based retrieval, that's just what RAGFlow's latest 0.7 release has provided.<p>On the other hand let me introduce another database we developed, Infinity(<a href="https://github.com/infiniflow/infinity">https://github.com/infiniflow/infinity</a>), which can provide the hybrid search, you can see the performance here(<a href="https://github.com/infiniflow/infinity/blob/main/docs/references/benchmark.md">https://github.com/infiniflow/infinity/blob/main/docs/refere...</a>), both vector search and full-text search could perform much faster than other open source alternatives.<p>From the next version(weeks later), Infinity will also provide more comprehensive hybrid search capabilities, what you have mentioned the 3-way recalls(dense vector, sparse vector, keyword search) could be provided within single request.