# How to Modify Default Scoring Calculation When Using Multiple knn Mixed Searches

**URL:** <https://discuss.elastic.co/t/how-to-modify-default-scoring-calculation-when-using-multiple-knn-mixed-searches/356513>\
**Category:** Elasticsearch\
**Tags:** vector-search\
**Created:** [April 1, 2024, 3:11am UTC](https://discuss.elastic.co/t/how-to-modify-default-scoring-calculation-when-using-multiple-knn-mixed-searches/356513 "2024-04-01T03:11:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![yuangen\_yu](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/yuangen_yu/32/133136_2.png) [@yuangen\_yu](https://discuss.elastic.co/u/yuangen_yu)\
**Post date:** [April 1, 2024, 3:11am UTC](https://discuss.elastic.co/t/how-to-modify-default-scoring-calculation-when-using-multiple-knn-mixed-searches/356513/1 "2024-04-01T03:11:24Z")

</div>

```auto
POST image-index/_search
{
  "query": {
    "match": {
      "title": {
        "query": "mountain lake",
        "boost": 0.9
      }
    }
  },
  "knn": [ {
    "field": "image-vector",
    "query_vector": [54, 10, -2],
    "k": 5,
    "num_candidates": 50,
    "boost": 0.1
  },
  {
    "field": "title-vector",
    "query_vector": [1, 20, -52, 23, 10],
    "k": 10,
    "num_candidates": 10,
    "boost": 0.5
  }],
  "size": 10
}

```

The scoring for a doc with the above configured boosts would be:  
score = 0.9 \* match\_score + 0.1 \* knn\_score\_image-vector + 0.5 \* knn\_score\_title-vector

How to Modify Default Scoring Calculation？thanks  
Expected modification:  
score = 0.9 \* match\_score + max(0.1 \*knn\_score\_image-vector, 0.5 \* knn\_score\_title-vector)

---

<div class="post-metadata">

**Author:** ![BenTrent](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bentrent/32/33915_2.png) [@BenTrent](https://discuss.elastic.co/u/BenTrent)\
**Post date:** [April 1, 2024, 11:47am UTC](https://discuss.elastic.co/t/how-to-modify-default-scoring-calculation-when-using-multiple-knn-mixed-searches/356513/2 "2024-04-01T11:47:12Z")

</div>

In Elasticsearch versions \>= 8.12, we added `knn` as a regular query in the DSL. This means you can use `knn` with a `dis_max` query.

For example:

```auto
{
	"query": {
		"bool": {
			"should": [
				{
					"dis_max": {
						"queries": [
							{
								"knn": {
									"field": "vector",
									"query_vector": [0.5, 0.5],
									"num_candidates": 1
								}
							},
							{
								"knn": {
									"field": "vector",
									"query_vector": [0.5, 0.5],
									"num_candidates": 1
								}
							}
						]
					}
				},
				{
					"match": {
						"field": "value"
					}
				}
			]
		}
	}
}

```

> **[Knn query | Elasticsearch Guide \[8.13\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-knn-query.html)**

---

<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 29, 2024, 11:47am UTC](https://discuss.elastic.co/t/how-to-modify-default-scoring-calculation-when-using-multiple-knn-mixed-searches/356513/3 "2024-04-29T11:47:40Z")

</div>

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