Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Indexation des données dans Amazon Service OpenSearch
Amazon OpenSearch Service utilisant une API REST, il existe de nombreuses méthodes pour indexer les documents. Vous pouvez utiliser des clients standard, tels que curl
Nous vous recommandons vivement d'utiliser Amazon OpenSearch Ingestion pour ingérer des données, un collecteur de données entièrement géré intégré au OpenSearch Service. Pour plus d'informations, consultez Amazon OpenSearch Ingestion.
Pour une introduction à l'indexation, consultez la OpenSearchdocumentation
Restrictions de dénomination des index
OpenSearch Les index de service sont soumis aux restrictions de dénomination suivantes :
-
Toutes les lettres doivent être en minuscules.
-
Les noms d'index ne peuvent pas commencer par
_
ni-
. -
Les noms d'index ne peuvent pas contenir d'espaces, de virgules,
:
,"
,*
,+
,/
,\
,|
,?
,#
,>
, ni de<
.
N'incluez pas d'informations sensibles dans les noms d'index, de type ou d'identifiant de document. OpenSearch Le service utilise ces noms dans ses identifiants de ressources uniformes (URI). Les serveurs et les applications journalisent souvent les demandes HTTP, ce qui peut entraîner une exposition inutile des données si les URI contiennent des informations sensibles :
2018-10-03T23:39:43 198.51.100.14 200 "GET https://
opensearch-domain
/dr-jane-doe/flu-patients-2018/202-555-0100/ HTTP/1.1"
Même si vous ne disposez pas des autorisations nécessaires pour afficher le document JSON associé, vous pourriez déduire à partir de cette ligne de journal fictive que l'un des patients du Dr Untel, dont le numéro de téléphone est le 202-555-0100, a eu la grippe en 2018.
Si le OpenSearch Service détecte une adresse IP réelle ou perçue dans un nom d'index (par exemple,my-index-12.34.56.78.91
), il masque l'adresse IP. Un appel à _cat/indices
donne la réponse suivante :
green open my-index-x.x.x.x.91 soY19tBERoKo71WcEScidw 5 1 0 0 2kb 1kb
Pour éviter toute confusion inutile, évitez d'inclure des adresses IP dans les noms d'index.
Réduction de la taille des réponses
Les réponses envoyées par les API _index
et _bulk
contiennent un grand nombre d'informations. Ces informations peuvent s'avérer utiles pour résoudre les problèmes liés aux demandes ou pour mettre en œuvre une logique de nouvelle tentative. Elles peuvent toutefois utiliser une grande quantité de bande passante. Dans cet exemple, l'indexation d'un document de 32 octets génère une réponse de 339 octets (en-têtes inclus) :
PUT
opensearch-domain
/more-movies/_doc/1 {"title": "Back to the Future"}
Réponse
{ "_index": "more-movies", "_type": "_doc", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 3, "_primary_term": 1 }
Cette taille de réponse peut sembler minime, mais si vous indexez 1 000 000 documents par jour (soit environ 11,5 documents par seconde), 339 octets par réponse représentent 10,17 Go de trafic de téléchargement par mois.
Si les coûts de transfert de données vous préoccupent, utilisez le filter_path
paramètre pour réduire la taille de la réponse du OpenSearch service, mais veillez à ne pas filtrer les champs dont vous avez besoin pour identifier ou réessayer les demandes ayant échoué. Ces champs varient selon le client. Le filter_path
paramètre fonctionne pour toutes les API REST de OpenSearch service, mais il est particulièrement utile pour les API que vous appelez fréquemment, telles que les _bulk
API _index
et :
PUT
opensearch-domain
/more-movies/_doc/1?filter_path=result,_shards.total {"title": "Back to the Future"}
Réponse
{ "result": "updated", "_shards": { "total": 2 } }
Au lieu d'inclure des champs, vous pouvez exclure des champs à l'aide du préfixe -
. filter_path
prend également en charge les caractères génériques :
POST
opensearch-domain
/_bulk?filter_path=-took,-items.index._* { "index": { "_index": "more-movies", "_id": "1" } } {"title": "Back to the Future"} { "index": { "_index": "more-movies", "_id": "2" } } {"title": "Spirited Away"}
Réponse
{ "errors": false, "items": [ { "index": { "result": "updated", "status": 200 } }, { "index": { "result": "updated", "status": 200 } } ] }
Codecs d'index
Les codecs d'index déterminent la manière dont les champs stockés dans un index sont compressés et stockés sur disque. Le codec d'index est contrôlé par le index.codec
paramètre statique, qui spécifie l'algorithme de compression. Ce paramètre a un impact sur la taille de la partition d'index et les performances opérationnelles.
Pour obtenir la liste des codecs pris en charge et leurs caractéristiques de performance, consultez la section Codecs pris en charge
Lorsque vous choisissez un codec d'index, tenez compte des points suivants :
-
Pour éviter les difficultés liées à la modification du paramètre de codec d'un index existant, testez une charge de travail représentative dans un environnement hors production avant d'utiliser un nouveau paramètre de codec. Pour plus d'informations, consultez la section Modification d'un codec d'index
. -
Vous ne pouvez pas utiliser les codecs de compression Zstandard
( "index.codec": "zstd"
ou"index.codec": "zstd_no_dict"
) pour les index K-nn ou Security Analytics.