in rally-custom/custom_tracks/opensearch/so_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": "1.0 + cosineSimilarity(params.query, doc['titleVector'])",
"params": {"query": self._queries[0]},
},
}
},
"_source": False,
}
if "filter" in self._params:
result["body"]["query"]["script_score"]["query"] = self._params["filter"]
else:
result["body"] = {
"query": {
"knn": {
"titleVector": {
"vector": self._queries[0],
"k": self._params.get("num-candidates", 10)
}
}
},
"_source": False
}
#https://opensearch.org/docs/latest/search-plugins/knn/filter-search-knn/
if "filter" in self._params:
result["body"]["query"]["knn"]["titleVector"]["filter"] = self._params["filter"]
return result