class_docstr: Use mlflow to implement ExpManager.
code: def search_records(self, experiment_ids=None, **kwargs):
      filter_string = (
          ""
          if kwargs.get("filter_string") is None
          else kwargs.get("filter_string")
      )
      run_view_type = (
          1
          if kwargs.get("run_view_type") is None
          else kwargs.get("run_view_type")
      )
      max_results = (
          100000
          if kwargs.get("max_results") is None
          else kwargs.get("max_results")
      )
      order_by = kwargs.get("order_by")
      return self.client.search_runs(
          experiment_ids,
          filter_string,
          run_view_type,
          max_results,
          order_by,
      )
  
imports: from urllib.parse import urlparse
  import mlflow
  from filelock import FileLock
  from mlflow.exceptions import MlflowException, RESOURCE_ALREADY_EXISTS, ErrorCode
  from mlflow.entities import ViewType
  import os
  from typing import Optional, Text
  from .exp import MLflowExperiment, Experiment
  from ..config import C
  from .recorder import Recorder
  from ..log import get_module_logger
  from ..utils.exceptions import ExpAlreadyExistError
label_desc: Use image node_id 6 for calling the MLflowExpManager obj's underlying member method code with example usage: obj.search_records(experiment_ids) and returns: self