class_docstr: run ann accuracy
class_docstr_tok: ["run","ann","accuracy"]
code: def run_case(self, case_metric, **case_param):
      true_ids = case_param["true_ids"]
      nq = case_metric.search["nq"]
      top_k = case_metric.search["topk"]
      start_time = time.time()
      end_time = start_time + 500
      cnt = 0
      while cnt < 100 and start_time < end_time:
          self.milvus.query(
              case_param["vector_query"],
              filter_query=case_param["filter_query"],
              guarantee_timestamp=case_param["guarantee_timestamp"],
          )
          cnt += 1
          start_time = time.time()
      query_res = self.milvus.query(
          case_param["vector_query"],
          filter_query=case_param["filter_query"],
          guarantee_timestamp=case_param["guarantee_timestamp"],
      )
      result_ids = self.milvus.get_ids(query_res)
      # Calculate the accuracy of the result of query
      acc_value = utils.get_recall_value(
          true_ids[:nq, :top_k].tolist(), result_ids
      )
      tmp_result = {"acc": acc_value}
      # Return accuracy results for reporting
      return tmp_result
  
imports: import time
  import copy
  import logging
  import numpy
  from milvus_benchmark import parser
  from milvus_benchmark.runners import utils
  from milvus_benchmark.runners.base import BaseRunner
label_desc: Use image node_id 4 for calling the AccAccuracyRunner obj's underlying member method code with example usage: obj.run_case(case_metric) and returns: tmp_result