Sorry about your difficulties.
Each knn query is an individual query. See my example (shortened for brevity):
{
"from": 0,
"size": 10,
"query": {
"script_score": {
"query": {
"bool": {
"should": [
{
"knn": {
"field": "ml.inference.vector_title.predicted_value",
"query_vector": [1,2,3],
"num_candidates": 100
}
},
{
"knn": {
"field": "ml.inference.vector_headings.predicted_value",
"query_vector": [1,2,3],
"num_candidates": 100
}
},
...
]
}
}
},
"script": {
"source": "if(doc['priority'].size() > 0){ return _score*(1-(doc['priority'].value-1)/10) }",
"lang": "painless"
}
},
"min_score": 50.0
}
You can see many examples here on this particular doc page: Knn query | Elasticsearch Guide [8.12] | Elastic