def params()

in rally-custom/custom_tracks/elasticsearch/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": "cosineSimilarity(params.query, 'titleVector') + 1.0",
                            "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": {
                            "field": "titleVector",
                            "query_vector": self._queries[0],
                            "num_candidates": self._params.get("num-candidates", 50)
                        }
                    },
                "_source": False
            }
            if "filter" in self._params:
                #add the prefilter to the knn query
                result["body"]["query"]["knn"]["filter"] = self._params["filter"]

        return result