# RRF score in Hybrid Search

**URL:** <https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012>\
**Category:** Elasticsearch\
**Tags:** vector-search\
**Created:** [September 30, 2024, 10:27am UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012 "2024-09-30T10:27:18Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shilpi95](https://avatars.discourse-cdn.com/v4/letter/s/f4b2a3/32.png) [@Shilpi95](https://discuss.elastic.co/u/Shilpi95)\
**Post date:** [September 30, 2024, 10:27am UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012/1 "2024-09-30T10:27:18Z")

</div>

Hi Team,  
I'm working on hybrid search using elastic. Below is the code snippet I'm using-

```auto
search_query = {
        "size": k,
        "query": {
            'bool': {
                'should': {
                    'multi_match': {
                        'query': search_term,
                        'fields': ['url', 'text_content'],
                    }
                },
               
            }
        },
       

        "knn": {
            "field": "ml.inference.main_article_vector.predicted_value",
            "query_vector_builder": {
                "text_embedding": {
                    "model_id": ".multilingual-e5-small_linux-x86_64",
                    "model_text": search_term
                }
            },
            "k": k,
            "num_candidates": 10000
        },
        "rank":{"rrf": {"window_size": k}},
        "fields": [
            "id",
            "url",
            "main_article_text",
            "document_image"
        ],
        "_source": "false"
        
    }

```

I'm not able to get the final score of the hybrid search. "\_score" is None.  
Is there a way to get the score along with the "\_rank".  
Thanks. Looking forward for the resolution.

---

<div class="post-metadata">

**Author:** ![RabBit\_BR](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rabbit_br/32/82261_2.png) [@RabBit\_BR](https://discuss.elastic.co/u/RabBit_BR)\
**Post date:** [September 30, 2024, 1:14pm UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012/2 "2024-09-30T13:14:27Z")

</div>

Hi @Shilpi95

I think that with more details like which version of elasticsearch you use and what your query returns as a response would help to understand a little more.

---

<div class="post-metadata">

**Author:** ![Shilpi95](https://avatars.discourse-cdn.com/v4/letter/s/f4b2a3/32.png) [@Shilpi95](https://discuss.elastic.co/u/Shilpi95)\
**Post date:** [September 30, 2024, 1:39pm UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012/3 "2024-09-30T13:39:28Z")

</div>

@RabBit_BR

Elasticsearch version is **Version: 8.15.1**  
Here's the response which the query returns:

```auto
{'_index': 'search-collection',
  '_id': '66e2adc39c1f65f51ffe0d',
  '_score': None,
  '_rank': 1,
  '_ignored': ['main_article_text.keyword'],
  '_source': {},
  'fields': {'id': ['66e2adc39c1f65f51ffe0d'],
   'document_image': ['https://assets.com/media/media.jpg'],
   'url': ['https://sample_url.html'],
   'main_article_text': ['sample text']}},

```

---

<div class="post-metadata">

**Author:** ![Kathleen\_DeRusso](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kathleen_derusso/32/132039_2.png) [@Kathleen\_DeRusso](https://discuss.elastic.co/u/Kathleen_DeRusso)\
**Post date:** [September 30, 2024, 1:57pm UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012/4 "2024-09-30T13:57:35Z")

</div>

RRF only cares about rank and score is not available in the response. However, [better explainability](https://github.com/elastic/elasticsearch/issues/107448) has been added.

---

<div class="post-metadata">

**Author:** ![Shilpi95](https://avatars.discourse-cdn.com/v4/letter/s/f4b2a3/32.png) [@Shilpi95](https://discuss.elastic.co/u/Shilpi95)\
**Post date:** [September 30, 2024, 2:41pm UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012/5 "2024-09-30T14:41:54Z")

</div>

Thanks @Kathleen_DeRusso for the response. Is there any way I can use custom function for RRF score in the search query?

---

<div class="post-metadata">

**Author:** ![Shilpi95](https://avatars.discourse-cdn.com/v4/letter/s/f4b2a3/32.png) [@Shilpi95](https://discuss.elastic.co/u/Shilpi95)\
**Post date:** [September 30, 2024, 2:48pm UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012/6 "2024-09-30T14:48:44Z")

</div>

@Kathleen_DeRusso I tried to include the "annotate\_source" but getting Bad Request error.

```auto
search_query = {
        "size": k,
        "query": {
            'bool': {
                'should': {
                    'multi_match': {
                        'query': search_term,
                        'fields': ['url', 'text_content'],
                    }
                },
               
            }
        },
       

        "knn": {
            "field": "ml.inference.main_article_vector.predicted_value",
            "query_vector_builder": {
                "text_embedding": {
                    "model_id": ".multilingual-e5-small_linux-x86_64",
                    "model_text": search_term
                }
            },
            "k": k,
            "num_candidates": 10000
        },
        "rank":{"rrf": {"window_size": k, "annotate_source": "true"}},
        "fields": [
            "id",
            "url",
            "main_article_text",
            "document_image"
        ],
        "_source": "false"
        
    }

```

```auto

BadRequestError: BadRequestError(400, 'x_content_parse_exception', '[1:390] [rrf] unknown field [annotate_source]')

```

---

<div class="post-metadata">

**Author:** ![Kathleen\_DeRusso](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kathleen_derusso/32/132039_2.png) [@Kathleen\_DeRusso](https://discuss.elastic.co/u/Kathleen_DeRusso)\
**Post date:** [September 30, 2024, 3:05pm UTC](https://discuss.elastic.co/t/rrf-score-in-hybrid-search/368012/7 "2024-09-30T15:05:12Z")

</div>

Here's another [PR](https://github.com/elastic/elasticsearch/pull/108682) with examples for explain.
