code: def search(
      self, docs: DocumentArray[TextDocWithId], **kwargs
  ) -> DocumentArray[TextDocWithId]:
      for doc in docs:
          self.logger.debug(
              f"Searching against {len(self._docs)} documents"
          )
          doc.text = self._docs_dict[doc.id].text
          doc.tags["pid"] = os.getpid()
          doc.tags["num"] = random_num
  
file_path: jina/tests/integration/stateful/stateful_snapshot_exec/executor.py
imports: from jina import DocumentArray, Executor, requests
  from jina.serve.executors.decorators import write
  import random
  from typing import Dict, List
  import os
  from docarray.documents import TextDoc
label_desc: Use image node_id 3 for calling the MyStateExecutor obj's underlying member method code with example usage: obj.search(docs) without return types