code: def configure_index_vectors(
      self,
      *,
      index: str,
      vectors: Dict[str, int],
      similarity_metric: str = "l2_norm",
  ):
      vector_mappings = {}
      for vector_name, vector_dimension in vectors.items():
          index_mapping = {
              "type": "dense_vector",
              "dims": vector_dimension,
              "index": True,
              # can similarity property also be part of config @frascuchon ?
              # relates vector search similarity metric
              "similarity": similarity_metric,  ## default value regarding the knn best practices es documentation
          }
          vector_field = self.query_builder.get_vector_field_name(
              vector_name
          )
          vector_mappings[vector_field] = index_mapping
  
      self.set_index_mappings(
          index=index,
          properties=vector_mappings,
      )
  
file_path: argilla/src/argilla/server/daos/backend/client_adapters/elasticsearch.py
imports: import dataclasses
  from typing import Any, Dict, Iterable, Optional, Tuple
  import elasticsearch8
  from argilla.server.daos.backend.base import BackendErrorHandler
  from argilla.server.daos.backend.client_adapters.opensearch import OpenSearchClient
  from argilla.server.daos.backend.search.query_builder import EsQueryBuilder
  from elasticsearch8 import ApiError, Elasticsearch, ElasticsearchWarning, NotFoundError, RequestError, helpers
  from elasticsearch8.helpers import BulkIndexError
label_desc: Use image node_id 2 for calling the ElasticsearchClient obj's underlying member method code with example usage: obj.configure_index_vectors() without return types