Distance measures for dense and sparse vectors (#37947)
* Distance measures for dense and sparse vectors
Introduce painless functions of
cosineSimilarity and dotProduct distance
measures for dense and sparse vector fields.
```js
{
"query": {
"script_score": {
"query": {
"match_all": {}
},
"script": {
"source": "cosineSimilarity(params.queryVector, doc['my_dense_vector'].value)",
"params": {
"queryVector": [4, 3.4, -1.2]
}
}
}
}
}
```
```js
{
"query": {
"script_score": {
"query": {
"match_all": {}
},
"script": {
"source": "cosineSimilaritySparse(params.queryVector, doc['my_sparse_vector'].value)",
"params": {
"queryVector": {"2": -0.5, "10" : 111.3, "50": -13.0, "113": 14.8, "4545": -156.0}
}
}
}
}
}
```
Closes #31615