Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
OpenDistro, 7.10.0
Describe the issue:
Hello!
Please understand how does formula for similarity in l2-space and cosinesimil works?
For example, I’ve tried to compare vectors by ElasticSearch and manually. So, I have these vectors in l2-space:
vector_1 = [129.0, 138.0, 139.0, 114.0, 145.0, 127.0, 122.0, 132.0, 124.0, 100.0, 113.0, 129.0, 118.0, 112.0, 142.0, 125.0, 134.0, 129.0, 121.0, 131.0, 132.0, 129.0, 113.0, 112.0, 122.0, 137.0, 137.0, 116.0, 120.0, 114.0, 108.0, 118.0, 135.0, 142.0, 127.0, 117.0, 133.0, 123.0, 130.0, 141.0, 131.0, 141.0, 119.0, 126.0, 125.0, 126.0, 135.0, 143.0, 125.0, 147.0, 136.0, 118.0, 115.0, 137.0, 134.0, 133.0, 133.0, 138.0, 143.0, 124.0, 120.0, 136.0, 133.0, 124.0, 128.0, 120.0, 130.0, 115.0, 136.0, 117.0, 131.0, 123.0, 122.0, 120.0, 121.0, 121.0, 114.0, 124.0, 130.0, 121.0, 131.0, 129.0, 119.0, 140.0, 124.0, 124.0, 112.0, 126.0, 134.0, 126.0, 125.0, 137.0, 148.0, 118.0, 128.0, 115.0, 128.0, 129.0, 122.0, 132.0, 125.0, 130.0, 124.0, 129.0, 128.0, 125.0, 130.0, 125.0, 132.0, 138.0, 127.0, 127.0, 121.0, 122.0, 127.0, 148.0, 110.0, 129.0, 123.0, 134.0, 127.0, 129.0, 131.0, 131.0, 130.0, 137.0, 131.0, 129.0, 121.0, 124.0, 133.0, 126.0, 120.0, 122.0, 122.0, 110.0, 130.0, 124.0, 129.0, 116.0, 129.0, 133.0, 133.0, 130.0, 129.0, 123.0, 123.0, 126.0, 120.0, 121.0, 126.0, 127.0, 126.0, 120.0, 118.0, 124.0, 122.0, 127.0, 118.0, 141.0, 118.0, 126.0, 112.0, 132.0, 120.0, 130.0, 116.0, 128.0, 119.0, 120.0, 120.0, 135.0, 138.0, 134.0, 128.0, 120.0, 131.0, 114.0, 117.0, 130.0, 133.0, 123.0, 125.0, 122.0, 117.0, 132.0, 134.0, 130.0, 129.0, 130.0, 130.0, 118.0, 131.0, 128.0, 132.0, 132.0, 119.0, 116.0, 132.0, 125.0, 121.0, 134.0, 128.0, 127.0, 122.0, 133.0, 130.0, 126.0, 128.0, 126.0, 134.0, 130.0, 132.0, 126.0, 124.0, 126.0, 120.0, 140.0, 121.0, 135.0, 132.0, 136.0, 133.0, 127.0, 125.0, 127.0, 132.0, 131.0, 126.0, 121.0, 127.0, 117.0, 130.0, 124.0, 130.0, 122.0, 127.0, 129.0, 133.0, 124.0, 130.0, 129.0, 126.0, 127.0, 125.0, 130.0, 118.0, 122.0, 131.0, 122.0, 127.0, 122.0, 126.0, 117.0, 125.0, 121.0, 124.0, 125.0, 127.0, 134.0, 133.0, 128.0, 131.0, 129.0, 133.0, 126.0, 129.0, 124.0, 126.0, 125.0, 127.0, 127.0, 133.0, 120.0, 126.0, 131.0, 129.0, 134.0, 125.0, 127.0, 124.0, 133.0, 126.0, 124.0, 125.0, 129.0, 122.0, 128.0, 129.0, 121.0, 125.0, 125.0, 126.0, 134.0, 133.0, 132.0, 127.0, 123.0, 117.0, 131.0, 130.0, 125.0, 122.0, 130.0, 126.0, 124.0, 125.0, 128.0, 128.0, 130.0, 128.0, 130.0, 127.0, 128.0, 125.0, 129.0, 130.0, 128.0, 123.0, 124.0, 128.0, 130.0, 132.0, 129.0, 125.0, 126.0, 128.0, 130.0, 127.0, 129.0, 129.0, 129.0, 126.0, 129.0, 125.0, 129.0, 127.0, 128.0, 124.0, 127.0, 124.0, 127.0, 128.0, 126.0, 128.0, 123.0, 123.0, 131.0, 132.0, 129.0, 129.0, 127.0, 129.0, 125.0, 126.0, 128.0, 131.0, 130.0, 123.0, 124.0, 127.0, 127.0, 127.0, 129.0, 127.0, 126.0, 130.0, 125.0, 131.0, 125.0, 128.0, 126.0, 128.0, 124.0, 128.0, 131.0, 125.0, 130.0, 126.0, 133.0, 130.0, 130.0, 129.0, 126.0, 131.0, 132.0, 128.0, 132.0, 127.0, 127.0, 131.0, 130.0, 124.0, 125.0, 124.0, 128.0, 127.0, 130.0, 128.0, 127.0, 128.0, 126.0, 132.0, 128.0, 132.0, 127.0, 130.0, 129.0, 125.0, 127.0, 127.0, 126.0, 129.0, 127.0, 123.0, 124.0, 123.0, 128.0, 129.0, 133.0, 128.0, 126.0, 133.0, 131.0, 129.0, 126.0, 126.0, 130.0, 127.0, 123.0, 127.0, 126.0, 127.0, 129.0, 126.0, 127.0, 126.0, 127.0, 126.0, 126.0, 130.0, 129.0, 130.0, 128.0, 129.0, 128.0, 127.0, 132.0, 126.0, 127.0, 125.0, 130.0, 128.0, 127.0, 130.0, 127.0, 126.0, 128.0, 128.0, 128.0, 125.0, 125.0, 132.0, 127.0, 127.0, 127.0, 131.0, 129.0, 124.0, 128.0, 128.0, 126.0, 129.0, 131.0, 130.0, 128.0, 126.0, 123.0, 127.0, 129.0, 127.0, 128.0, 127.0, 128.0, 127.0, 123.0, 128.0, 128.0, 130.0, 128.0, 125.0, 128.0, 129.0, 128.0, 127.0, 127.0, 131.0, 128.0, 127.0, 126.0, 125.0, 126.0, 127.0, 128.0, 125.0, 129.0, 129.0, 124.0, 131.0, 129.0, 127.0, 129.0]
vector_2 = [130.0, 135.0, 127.0, 114.0, 154.0, 125.0, 121.0, 131.0, 132.0, 98.0, 127.0, 134.0, 121.0, 115.0, 145.0, 137.0, 140.0, 121.0, 126.0, 129.0, 130.0, 137.0, 106.0, 122.0, 131.0, 135.0, 135.0, 126.0, 124.0, 114.0, 101.0, 121.0, 139.0, 142.0, 114.0, 133.0, 132.0, 122.0, 125.0, 143.0, 123.0, 133.0, 125.0, 137.0, 125.0, 129.0, 142.0, 147.0, 139.0, 132.0, 140.0, 119.0, 131.0, 121.0, 133.0, 130.0, 131.0, 134.0, 140.0, 123.0, 116.0, 138.0, 139.0, 122.0, 126.0, 121.0, 130.0, 113.0, 141.0, 123.0, 131.0, 127.0, 122.0, 110.0, 131.0, 123.0, 123.0, 128.0, 122.0, 120.0, 119.0, 133.0, 112.0, 137.0, 130.0, 131.0, 119.0, 119.0, 124.0, 127.0, 120.0, 133.0, 139.0, 125.0, 135.0, 114.0, 128.0, 130.0, 135.0, 124.0, 130.0, 133.0, 129.0, 131.0, 120.0, 124.0, 126.0, 133.0, 121.0, 134.0, 123.0, 125.0, 130.0, 131.0, 120.0, 134.0, 119.0, 129.0, 122.0, 132.0, 122.0, 125.0, 124.0, 127.0, 129.0, 139.0, 121.0, 134.0, 124.0, 125.0, 132.0, 128.0, 126.0, 121.0, 133.0, 114.0, 122.0, 125.0, 129.0, 124.0, 123.0, 131.0, 130.0, 127.0, 126.0, 132.0, 125.0, 127.0, 125.0, 120.0, 129.0, 128.0, 125.0, 126.0, 115.0, 121.0, 121.0, 133.0, 123.0, 140.0, 129.0, 131.0, 122.0, 128.0, 125.0, 130.0, 118.0, 132.0, 123.0, 121.0, 124.0, 133.0, 137.0, 130.0, 134.0, 119.0, 126.0, 118.0, 123.0, 131.0, 137.0, 130.0, 127.0, 127.0, 116.0, 127.0, 135.0, 138.0, 128.0, 130.0, 131.0, 112.0, 124.0, 131.0, 125.0, 127.0, 116.0, 111.0, 134.0, 119.0, 113.0, 136.0, 130.0, 123.0, 128.0, 124.0, 128.0, 124.0, 131.0, 119.0, 135.0, 140.0, 136.0, 128.0, 121.0, 124.0, 118.0, 132.0, 128.0, 132.0, 131.0, 134.0, 136.0, 121.0, 122.0, 128.0, 131.0, 130.0, 131.0, 122.0, 129.0, 118.0, 123.0, 122.0, 131.0, 123.0, 128.0, 132.0, 131.0, 125.0, 129.0, 124.0, 128.0, 123.0, 124.0, 138.0, 125.0, 118.0, 131.0, 123.0, 130.0, 118.0, 127.0, 124.0, 128.0, 127.0, 131.0, 134.0, 131.0, 128.0, 127.0, 126.0, 129.0, 130.0, 129.0, 126.0, 126.0, 124.0, 125.0, 123.0, 122.0, 130.0, 132.0, 117.0, 124.0, 130.0, 122.0, 130.0, 124.0, 127.0, 128.0, 121.0, 130.0, 126.0, 133.0, 126.0, 119.0, 128.0, 133.0, 123.0, 128.0, 123.0, 125.0, 132.0, 131.0, 134.0, 119.0, 120.0, 123.0, 134.0, 126.0, 130.0, 127.0, 129.0, 124.0, 127.0, 124.0, 126.0, 126.0, 130.0, 129.0, 134.0, 129.0, 126.0, 125.0, 131.0, 128.0, 125.0, 117.0, 123.0, 129.0, 131.0, 129.0, 127.0, 127.0, 128.0, 127.0, 128.0, 132.0, 127.0, 126.0, 127.0, 125.0, 131.0, 126.0, 128.0, 129.0, 126.0, 124.0, 126.0, 124.0, 127.0, 129.0, 129.0, 122.0, 125.0, 125.0, 129.0, 128.0, 129.0, 127.0, 129.0, 124.0, 123.0, 128.0, 126.0, 127.0, 129.0, 124.0, 126.0, 128.0, 127.0, 127.0, 128.0, 126.0, 128.0, 130.0, 128.0, 126.0, 127.0, 133.0, 128.0, 127.0, 124.0, 125.0, 131.0, 127.0, 129.0, 128.0, 130.0, 130.0, 130.0, 125.0, 128.0, 127.0, 134.0, 128.0, 129.0, 127.0, 126.0, 129.0, 127.0, 129.0, 125.0, 125.0, 126.0, 126.0, 130.0, 127.0, 123.0, 125.0, 126.0, 130.0, 127.0, 127.0, 126.0, 125.0, 129.0, 124.0, 129.0, 124.0, 126.0, 127.0, 126.0, 123.0, 126.0, 126.0, 129.0, 129.0, 130.0, 129.0, 127.0, 127.0, 129.0, 129.0, 126.0, 128.0, 126.0, 126.0, 125.0, 123.0, 129.0, 127.0, 126.0, 122.0, 127.0, 128.0, 126.0, 126.0, 128.0, 130.0, 126.0, 129.0, 129.0, 129.0, 129.0, 130.0, 130.0, 127.0, 128.0, 126.0, 130.0, 127.0, 129.0, 128.0, 126.0, 125.0, 128.0, 129.0, 128.0, 125.0, 126.0, 130.0, 125.0, 129.0, 128.0, 126.0, 130.0, 122.0, 128.0, 128.0, 126.0, 128.0, 129.0, 132.0, 129.0, 129.0, 125.0, 129.0, 130.0, 128.0, 126.0, 127.0, 127.0, 129.0, 125.0, 127.0, 127.0, 131.0, 127.0, 126.0, 127.0, 131.0, 130.0, 127.0, 126.0, 131.0, 130.0, 128.0, 126.0, 126.0, 127.0, 128.0, 126.0, 126.0, 129.0, 127.0, 126.0, 129.0, 128.0, 127.0, 129.0]
ElasticSearch returns next similarity-scores:
vector_1 - vector_1 => 1.0
vector_1 - vector_2 => 0,00009978
These are my manual similarity scores:
vector_1 - vector_1 => 1.0
vector_1 - vector_2 => 0.00989071
I use formula for elasticsearch from https://opendistro.github.io/for-elasticsearch-docs/docs/knn/approximate-knn/