def query(self, vector_query, filter_query=None, collection_name=None, guarantee_timestamp=None, timeout=300): """ This method corresponds to the search method of milvus """ tmp_collection_name = self._collection_name if collection_name is None else collection_name params = util.search_param_analysis(vector_query, filter_query) params.update({"timeout": timeout}) if guarantee_timestamp is not None: params.update({"guarantee_timestamp": guarantee_timestamp}) # logger.debug("Params of search : %s" % str(params)) result = self._milvus.search(tmp_collection_name, **params) # must_params = [vector_query] # if filter_query: # must_params.extend(filter_query) # query = { # "bool": {"must": must_params} # } # result = self._milvus.search(tmp_collection_name, query, timeout=timeout) return result
def warm_query(self, index_field_name, search_param, metric_type, times=2): query_vectors = [[random.random() for _ in range(self._dimension)] for _ in range(DEFAULT_WARM_QUERY_NQ)] # index_info = self.describe_index(index_field_name) vector_query = { "vector": { index_field_name: { "topk": DEFAULT_WARM_QUERY_TOPK, "query": query_vectors, "metric_type": metric_type, "params": search_param } } } must_params = [vector_query] # query = { # "bool": {"must": must_params} # } logger.debug("Start warm up query") for i in range(times): params = util.search_param_analysis(vector_query, None) self._milvus.search(self._collection_name, **params) # self._milvus.search(self._collection_name, query) logger.debug("End warm up query")
def load_and_query(self, vector_query, filter_query=None, collection_name=None, timeout=120): tmp_collection_name = self._collection_name if collection_name is None else collection_name must_params = [vector_query] if filter_query: must_params.extend(filter_query) query = { "bool": {"must": must_params} } self.load_collection(tmp_collection_name) params = util.search_param_analysis(vector_query, filter_query) params.update({"timeout": timeout}) result = self._milvus.search(tmp_collection_name, **params) # result = self._milvus.search(tmp_collection_name, query, timeout=timeout) return result
def query(self, vector_query, filter_query=None, collection_name=None, timeout=300): """ This method corresponds to the search method of milvus """ tmp_collection_name = self._collection_name if collection_name is None else collection_name params = util.search_param_analysis(vector_query, filter_query) params.update({"timeout": timeout}) result = self._milvus.search(tmp_collection_name, **params) # must_params = [vector_query] # if filter_query: # must_params.extend(filter_query) # query = { # "bool": {"must": must_params} # } # result = self._milvus.search(tmp_collection_name, query, timeout=timeout) return result