code: def load_query_rand(self, nq_max=100, timeout=None):
      # for ivf search
      dimension = 128
      top_k = random.randint(1, 100)
      nq = random.randint(1, nq_max)
      nprobe = random.randint(1, 100)
      search_param = {"nprobe": nprobe}
      query_vectors = [
          [random.random() for _ in range(dimension)] for _ in range(nq)
      ]
      metric_type = random.choice(["l2", "ip"])
      logger.info(
          "%s, Search nq: %d, top_k: %d, nprobe: %d"
          % (self._collection_name, nq, top_k, nprobe)
      )
      vec_field_name = utils.get_default_field_name()
      vector_query = {
          "vector": {
              vec_field_name: {
                  "topk": top_k,
                  "query": query_vectors,
                  "metric_type": utils.metric_type_trans(metric_type),
                  "params": search_param,
              }
          }
      }
      self.load_and_query(vector_query, timeout=timeout)
  
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 26 for calling the MilvusClient obj's underlying member method code with example usage: obj.load_query_rand(nq_max, timeout) without return types