code: 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")
  
imports: import random
  import logging
  import time
  from multiprocessing import Process
  from pymilvus import Milvus, DataType
  import utils
  import config
  from milvus_benchmark.runners import utils
label_desc: Use image node_id 22 for calling the MilvusClient obj's underlying member method code with example usage: obj.warm_query(index_field_name, search_param, metric_type, times) without return types