in rally-custom/custom_tracks/elasticsearch/dense_vector/track.py [0:0]
def params(self):
result = {"index": self._index_name, "cache": self._params.get("cache", False), "size": self._params.get("k", 10)}
if self._exact_scan:
result["body"] = {
"query": {
"script_score": {
"query": {"match_all": {}},
"script": {
"source": f"cosineSimilarity(params.query, '{self._vector_field}') + 1.0",
"params": {"query": self._queries[self._iters]},
},
}
},
"_source": False,
}
else:
result["body"] = {
"query": {
"knn": {
"field": self._vector_field,
"query_vector": self._queries[self._iters],
"num_candidates": self._params.get("num-candidates", 50)
}
},
"_source": False
}
self._iters += 1
if self._iters >= len(self._queries):
self._iters = 0
return result