class_docstr: Provide a thin wrapper around the OpenSearch client.
  
  :param open_search_conn_id: Connection to use with OpenSearch
  :param log_query: Whether to log the query used for OpenSearch
docstr: Run a search query against the connected OpenSearch cluster.
  
  :param query: The query for the search against OpenSearch.
  :param index_name: The name of the index to search against
docstr_tok: ["Run","a","search","query","against","the","connected","OpenSearch","cluster",".",":","param","query",":","The","query","for","the","search","against","OpenSearch",".",":","param","index_name",":","The","name","of","the","index","to","search","against"]
code: def search(self, query: dict, index_name: str, **kwargs: Any) -> Any:
      """
      Run a search query against the connected OpenSearch cluster.
  
      :param query: The query for the search against OpenSearch.
      :param index_name: The name of the index to search against
      """
      if self.log_query:
          self.log.info(
              "Searching %s with Query: %s", index_name, query
          )
      return self.client.search(body=query, index=index_name, **kwargs)
  
file_path: airflow/airflow/providers/opensearch/hooks/opensearch.py
imports: from __future__ import annotations
  import json
  from functools import cached_property
  from typing import Any
  from opensearchpy import OpenSearch, RequestsHttpConnection
  from airflow.exceptions import AirflowException
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 4 for calling the OpenSearchHook obj's underlying member method code with example usage: obj.search(query, index_name) and returns: self