code: def _execute_map(
      cls, xp: Any, a: np.ndarray, v: Any, op: "TensorSearchsorted"
  ):
      out = op.outputs[0]
      i = out.index[0]
      side = op.side
  
      raw_v = v
      v = xp.atleast_1d(v)
      searched = xp.searchsorted(a, v, side=op.side)
      xp.add(searched, op.offset, out=searched)
      a_min, a_max = a[0], a[-1]
      if i == 0:
          # the first chunk
          if a_min == a_max:
              miss = v > a_max
          else:
              miss = v > a_max if side == "left" else v >= a_max
      elif i == op.n_chunk - 1:
          # the last chunk
          if a_min == a_max:
              miss = v < a_min
          else:
              miss = v <= a_min if side == "left" else v < a_min
      else:
          if side == "left" and a_min < a_max:
              miss = (v <= a_min) | (v > a_max)
          elif a_min < a_max:
              miss = (v < a_min) | (v >= a_max)
          else:
              assert a_min == a_max
              miss = v != a_min
      if side == "right":
          searched[miss] = -1
      else:
          searched[miss] = op.size + 1
  
      return searched[0] if np.isscalar(raw_v) else searched
  
imports: import itertools
  from typing import Any, List, Tuple, Type
  import numpy
  from ...None import opcodes
  from ...core import TILEABLE_TYPE
  from ...core.operand import OperandStage
  from ...serialization.serializables import StringField, AnyField, Int64Field, Int32Field
  from ...typing import TileableType, ChunkType
  from ...config import options
  from ...utils import has_unknown_shape
  from ..operands import TensorOperand, TensorOperandMixin
  from ..core import TENSOR_TYPE, TensorOrder
  from ..datasource.array import tensor
  from ..array_utils import as_same_device, device
label_desc: Use image node_id 8 for calling the TensorSearchsorted obj's underlying member method code with example usage: obj._execute_map(cls, xp, a, v, op) and returns: unknown