> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Stockage vectoriel OpenSearch La classe OpenSearchVector fournit une recherche vectorielle au moyen d'[OpenSearch](https://opensearch.org/), un moteur open source de recherche et d'analyse. Elle utilise les fonctionnalités k-NN d'OpenSearch pour effectuer une recherche de similarité vectorielle. ## Options du constructeur Le constructeur accepte toutes les [ClientOptions d'OpenSearch](https://opensearch.org/docs/latest/clients/javascript/index/) ainsi qu'un champ `id` obligatoire. **id** (`string`): Identifiant unique de cette instance de stockage vectoriel **node** (`string | string[] | NodeOptions | NodeOptions[]`): URL du ou des nœuds OpenSearch (par exemple, 'http\://localhost:9200') **auth** (`BasicAuth | BearerAuth | AwsSigv4Auth`): Configuration de l'authentification **ssl** (`ConnectionOptions`): Configuration SSL/TLS **compression** (`'gzip'`): Active la compression gzip ## Méthodes ### `createIndex()` Crée un index avec la configuration indiquée. **indexName** (`string`): Nom de l'index à créer **dimension** (`number`): Dimension des vecteurs à stocker dans l'index **metric** (`'cosine' | 'euclidean' | 'dotproduct'`): Métrique de distance à utiliser pour la similarité vectorielle (Default: `'cosine'`) ### `listIndexes()` Répertorie tous les index de l'instance OpenSearch. Renvoie : `Promise` ### `describeIndex()` Récupère les informations relatives à un index. **indexName** (`string`): Nom de l'index à décrire ### `deleteIndex()` **indexName** (`string`): Nom de l'index à supprimer ### `upsert()` **indexName** (`string`): Nom de l'index dans lequel insérer ou mettre à jour les vecteurs **vectors** (`number[][]`): Tableau des embeddings vectoriels à insérer **metadata** (`Record[]`): Tableau des objets de métadonnées correspondant à chaque vecteur **ids** (`string[]`): Tableau facultatif des identifiants des vecteurs. S'il n'est pas fourni, des identifiants aléatoires sont générés ### `query()` **indexName** (`string`): Nom de l'index à interroger **queryVector** (`number[]`): Vecteur de requête pour lequel rechercher des vecteurs similaires **topK** (`number`): Nombre de résultats à renvoyer (Default: `10`) **filter** (`VectorFilter`): Filtre facultatif à appliquer à la requête (syntaxe de requête de type MongoDB) ### `updateVector()` Met à jour un seul vecteur à partir de son identifiant ou d'un filtre de métadonnées. Vous devez fournir `id` ou `filter`, mais pas les deux. **indexName** (`string`): Nom de l'index dans lequel mettre à jour les vecteurs **id** (`string`): Identifiant du vecteur à mettre à jour (incompatible avec filter) **filter** (`Record`): Filtre de métadonnées permettant d’identifier le ou les vecteurs à mettre à jour (incompatible avec id) **update** (`{ vector?: number[]; metadata?: Record; }`): Objet contenant le vecteur ou les métadonnées à mettre à jour, ou les deux ### `deleteVector()` Supprime de l'index un seul vecteur à partir de son identifiant. **indexName** (`string`): Nom de l'index dont le vecteur doit être supprimé **id** (`string`): Identifiant du vecteur à supprimer ### `deleteVectors()` Supprime plusieurs vecteurs à partir de leurs identifiants ou d'un filtre de métadonnées. Vous devez fournir `ids` ou `filter`, mais pas les deux. **indexName** (`string`): Nom de l'index contenant les vecteurs à supprimer **ids** (`string[]`): Tableau des identifiants de vecteurs à supprimer (incompatible avec filter) **filter** (`Record`): Filtre de métadonnées permettant d’identifier les vecteurs à supprimer (incompatible avec ids) ## Voir aussi - [Filtres de métadonnées](https://mastra.zisheng.pro/fr/reference/rag/metadata-filters)