# Is there a way to combine default BM25 score of Elasticsearch and Dense Vectors similarity

**URL:** <https://discuss.elastic.co/t/is-there-a-way-to-combine-default-bm25-score-of-elasticsearch-and-dense-vectors-similarity/225168>\
**Category:** Elasticsearch\
**Created:** [March 26, 2020, 10:40am UTC](https://discuss.elastic.co/t/is-there-a-way-to-combine-default-bm25-score-of-elasticsearch-and-dense-vectors-similarity/225168 "2020-03-26T10:40:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dpappas](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dpappas/32/52571_2.png) [@dpappas](https://discuss.elastic.co/u/dpappas)\
**Post date:** [March 26, 2020, 10:40am UTC](https://discuss.elastic.co/t/is-there-a-way-to-combine-default-bm25-score-of-elasticsearch-and-dense-vectors-similarity/225168/1 "2020-03-26T10:40:26Z")

</div>

Hello everyone!

I would like to combine the BM25 score computed by Elasticsearch and  
The cosine similarity of dense vectors.

I read the following post

> **[Text similarity search in Elasticsearch using vector fields](https://www.elastic.co/blog/text-similarity-search-with-vectors-in-elasticsearch)**
>
> The Elasticsearch 7.3 release brings support for using vectors in document scoring. This post explores how text embeddings and vector fields can be used to support similarity search.

It would be nice if I could somehow use the BM25 score in the "script".  
Is there a way to do something like that?

Thank you in advance

---

<div class="post-metadata">

**Author:** ![mayya](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mayya/32/83147_2.png) [@mayya](https://discuss.elastic.co/u/mayya)\
**Post date:** [March 26, 2020, 8:42pm UTC](https://discuss.elastic.co/t/is-there-a-way-to-combine-default-bm25-score-of-elasticsearch-and-dense-vectors-similarity/225168/2 "2020-03-26T20:42:17Z")

</div>

Hello,  
script gives you flexibility to combine textual scores with any other computations the way you like.  
For example, the following query uses a linear combination of BM25 score from query: message:elasticsearch with a vector cosine similarity.

```auto
{
  "query": {
    "script_score": {
      "query": {
        "match": {
          "message": "elasticsearch"
        }
      },
      "script": {
        "source": "_score + cosineSimilarity(params.query_vector, 'my_dense_vector')",
        "params": {
          "query_vector": [4, 3.4,-0.2]
        }
      }
    }
  }
}

```

---

<div class="post-metadata">

**Author:** ![dpappas](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dpappas/32/52571_2.png) [@dpappas](https://discuss.elastic.co/u/dpappas)\
**Post date:** [March 26, 2020, 9:04pm UTC](https://discuss.elastic.co/t/is-there-a-way-to-combine-default-bm25-score-of-elasticsearch-and-dense-vectors-similarity/225168/3 "2020-03-26T21:04:30Z")

</div>

Thank you very much

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 23, 2020, 9:04pm UTC](https://discuss.elastic.co/t/is-there-a-way-to-combine-default-bm25-score-of-elasticsearch-and-dense-vectors-similarity/225168/4 "2020-04-23T21:04:33Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
