fast-elasticsearch-vector-scoring
fast-elasticsearch-vector-scoring copied to clipboard
Get the same results no matter how different the embedded vector
I queried something like this:
curl -XGET "$HOST/sappearance/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"function_score": {
"boost_mode": "replace",
"boost": 1,
"script_score": {
"script": {
"source": "binary_vector_score",
"lang": "knn",
"params": {
"cosine": false,
"field": "embedded",
"encoded_vector":
"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"
}
}
}
}
And here is the sample results:
{
"_index" : "sappearance",
"_type" : "_doc",
"_id" : "GYE1_3YB81_RQuAAxOtM",
"_score" : 1.54172978,
"_source" : {
"_pid" : 1,
"timestamp" : "2021-01-14T10:52:03.269931",
"embedded" : "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",
"camera_id" : 100
}
},
{
"_index" : "sappearance",
"_type" : "_doc",
"_id" : "NoE1_3YB81_RQuAAxes0",
"_score" : 1.54172978,
"_source" : {
"_pid" : 1,
"timestamp" : "2021-01-14T10:52:05.291303",
"embedded" : "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",
"camera_id" : 100
}
},
{
"_index" : "sappearance",
"_type" : "_doc",
"_id" : "G4E1_3YB81_RQuAAxOtb",
"_score" : 1.54172978,
"_source" : {
"_pid" : 1,
"timestamp" : "2021-01-14T10:52:03.269931",
"embedded" : "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",
"camera_id" : 100
}
}
]
Could you help me out? If I use the built-in dot product function there is no problem.
@lior-k I'm having the same problem.
@lior-k Thanks for your work. However, I am going through the same problem. the plugin returns the same score no matter what the sentence is. It seems to follow that of the first document's score.
Is it a bug? or Is there any kinds of possibility that I made mistake?
What is the ES version you guys use?
@lior-k I used Elasticsearch version 7.9.3 and 7.9.0, then using your 'es-7.9.0' branch code. But, get same problem with both.
Thank you @lior-k for your work. Do you have any updates from here? I got the same error
Mapping is
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"vectorField": {
"type": "binary",
"doc_values": True
},
}
}
}
Query to ask is
{
"query": {
"function_score": {
"boost_mode": "replace",
"script_score": {
"script": {
"source": "binary_vector_score",
"lang": "knn",
"params": {
"cosine": True,
"field": "vectorField",
"vector": list(np.random.rand(512))
}
}
}
}
},
"size": 10
}
The output result is
{'took': 2,
'timed_out': False,
'_shards': {'total': 1, 'successful': 1, 'skipped': 0, 'failed': 0},
'hits': {'total': {'value': 10, 'relation': 'eq'},
'max_score': 0.87545174,
'hits': [{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind0',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind1',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind2',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind3',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind4',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind5',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind6',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind7',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind8',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}},
{'_index': 'here9201float',
'_type': '_doc',
'_id': 'ind9',
'_score': 0.87545174,
'_source': {'vectorField': 'encoded-values-here='}}]}}
I use the 7.9.0 ES version and cloned the corresponded branch. Hope you help me
@lior-k
Thanks for your work!
I have solved the above problem that appeared in branch 7.9.0 by debugging es locally.
Bug code in VectorScoreScript.java, line29~30:
final byte[] bytes = binaryEmbeddingReader.binaryValue().bytes;
final ByteArrayDataInput input = new ByteArrayDataInput(bytes);
The right code should be:
final BytesRef bytesRef = binaryEmbeddingReader.binaryValue();
final ByteArrayDataInput input = new ByteArrayDataInput(bytesRef.bytes, bytesRef.offset, bytesRef.length);
Please fix this bug.
Reference:
Official usage of BytesRef in ElasticSearch, see AbstractBinaryDVLeafFieldData.java, line62~66:
final BytesRef bytes = values.binaryValue();
assert bytes.length > 0;
in.reset(bytes.bytes, bytes.offset, bytes.length);
count = in.readVInt();
scratch.bytes = bytes.bytes;