code: def _validate_search_targets(self, targets, query):
      # TODO: support allow_no_indices query parameter
      matches = set()
      for target in targets:
          print(f"Loop over:::target = {target}")
          if target in ("_all", ""):
              matches.update(self.__documents_dict)
          elif "*" in target:
              matches.update(
                  fnmatch.filter(self.__documents_dict, target)
              )
          elif target not in self.__documents_dict:
              raise MissingIndexException(
                  msg=f"IndexMissingException[[{target}] missing]",
                  query=query,
              )
      return matches
  
imports: from __future__ import annotations
  import fnmatch
  import json
  from elasticsearch import Elasticsearch
  from elasticsearch.exceptions import NotFoundError
  from .utilities import MissingIndexException, get_random_id, query_params
label_desc: Use image node_id 17 for calling the FakeElasticsearch obj's underlying member method code with example usage: obj._validate_search_targets(targets, query) and returns: matches