class_docstr: Encapsulates logic about the communication, queries and index mapping
  transformations between DAOs layer and the elasticsearch backend.
code: def _configure_vectors_fields(
      self,
      index: str,
      vectors_cfg: dict,
  ):
      def _check_max_number_of_vectors():
          vectors = self.client.get_property_type(
              index=index,
              property_name="vectors",
              drop_extra_props=True,
          )
          vector_names = {
              key for key in vectors.keys() if "vector" in vectors[key]
          }
          for key in vectors_cfg.keys():
              vector_names.add(f"vectors.{key}.value")
  
          if len(vector_names) > settings.vectors_fields_limit:
              raise BadRequestError(
                  detail=f"Cannot create more than {settings.vectors_fields_limit} "
                  "kind of vectors per dataset"
              )
  
      _check_max_number_of_vectors()
  
      self.client.configure_index_vectors(
          index=index,
          vectors=vectors_cfg,
      )
  
imports: from typing import Any, Dict, Iterable, List, Optional, Tuple
  from argilla.logging import LoggingMixin
  from argilla.server.commons.models import TaskType
  from argilla.server.constants import PROTECTED_METADATA_FIELD_PREFIX
  from argilla.server.daos.backend.base import IndexNotFoundError, InvalidSearchError
  from argilla.server.daos.backend.client_adapters.base import IClientAdapter
  from argilla.server.daos.backend.client_adapters.factory import ClientAdapterFactory
  from argilla.server.daos.backend.mappings.datasets import DATASETS_INDEX_NAME, datasets_index_mappings
  from argilla.server.daos.backend.mappings.helpers import mappings, tasks_common_mappings, tasks_common_settings
  from argilla.server.daos.backend.mappings.text2text import text2text_mappings
  from argilla.server.daos.backend.mappings.text_classification import text_classification_mappings
  from argilla.server.daos.backend.mappings.token_classification import token_classification_mappings
  from argilla.server.daos.backend.metrics import ALL_METRICS
  from argilla.server.daos.backend.metrics.base import ElasticsearchMetric
  from argilla.server.daos.backend.search.model import BackendRecordsQuery, BaseDatasetsQuery, BaseQuery, BaseRecordsQuery, SortableField, SortConfig
  from argilla.server.errors import BadRequestError, EntityNotFoundError
  from argilla.server.errors.task_errors import MetadataLimitExceededError
  from argilla.server.pydantic_v1 import BaseModel, Field
  from argilla.server.settings import settings
label_desc: Use image node_id 12 for calling the GenericElasticEngineBackend obj's underlying member method code with example usage: obj._configure_vectors_fields(index, vectors_cfg) without return types