class_docstr: Fetch trial component data and make them accessible for analytics.
docstr: Perform a search query using SageMaker Search and return the matching trial components.
  
  Args:
      search_expression: Search expression to filter trial components.
      sort_by: The name of the resource property used to sort the trial components.
      sort_order: How trial components are ordered, valid values are Ascending
          and Descending. The default is Descending.
  Returns:
      list: List of dict representing trial components.
docstr_tok: ["Perform","a","search","query","using","SageMaker","Search","and","return","the","matching","trial","components",".","Args",":","search_expression",":","Search","expression","to","filter","trial","components",".","sort_by",":","The","name","of","the","resource","property","used","to","sort","the","trial","components",".","sort_order",":","How","trial","components","are","ordered",",","valid","values","are","Ascending","and","Descending",".","The","default","is","Descending",".","Returns",":","list",":","List","of","dict","representing","trial","components","."]
code: def _search(self, search_expression, sort_by, sort_order):
      """Perform a search query using SageMaker Search and return the matching trial components.
  
      Args:
          search_expression: Search expression to filter trial components.
          sort_by: The name of the resource property used to sort the trial components.
          sort_order: How trial components are ordered, valid values are Ascending
              and Descending. The default is Descending.
      Returns:
          list: List of dict representing trial components.
      """
      trial_components = []
  
      search_args = {
          "Resource": "ExperimentTrialComponent",
          "SearchExpression": search_expression,
      }
  
      if sort_by:
          search_args["SortBy"] = sort_by
  
      if sort_order:
          search_args["SortOrder"] = sort_order
  
      while len(trial_components) < self.MAX_TRIAL_COMPONENTS:
          search_response = self._sage_client.search(**search_args)
          components = [
              result["TrialComponent"]
              for result in search_response["Results"]
          ]
          trial_components.extend(components)
          if "NextToken" in search_response and len(components) > 0:
              search_args["NextToken"] = search_response["NextToken"]
          else:
              break
  
      return trial_components
  
imports: from __future__ import print_function, absolute_import
  from abc import ABCMeta, abstractmethod
  from collections import defaultdict, OrderedDict
  import datetime
  import logging
  from six import with_metaclass
  from sagemaker.session import Session
  from sagemaker.utils import DeferredError
  from sagemaker.lineage import artifact
label_desc: Use image node_id 12 for calling the ExperimentAnalytics obj's underlying member method code with example usage: obj._search(search_expression, sort_by, sort_order) and returns: trial_components