Importez les données dans OpenSearch via des API, des SDK ou la console de téléchargement, ou synchronisez-les directement depuis une base de données cloud existante. Si vous choisissez d'importer les données via une API ou un SDK, suivez la référence de l'API pour les importer directement ; la configuration des plug-ins décrite dans cette rubrique n'est pas prise en charge. Pour synchroniser des données cloud, configurez les informations de la source de données dans la console. Le système propose plusieurs plug-ins de traitement des données pour transformer simplement les données. Activez-les lors de la configuration des mappages de champs d'une source de données. (Les plug-ins ne sont pas pris en charge pour les données importées via des API ; traitez les données avant de les pousser.)
Une table OpenSearch peut comporter plusieurs tables sources RDS et PolarDB (par exemple, dans des scénarios de sharding de base de données et de tables), mais une seule source MaxCompute (ODPS) est autorisée. Si vous avez besoin de plusieurs tables sources MaxCompute, fusionnez les données dans une seule table avant l'importation.
Plug-ins de traitement des données
Certaines fonctionnalités de recherche nécessitent des types de champs particuliers. Par exemple, un type de champ Array doit être converti à l'aide des plug-ins suivants et ne peut pas être saisi directement.
Remarque : configurez ce plug-in dans les paramètres de la source de données, et non lors de la définition du schéma de l'application. Vous ne pouvez définir un plug-in qu'après avoir configuré une source de données.
|
Élément de configuration |
Description |
Exemple |
|
JsonKeyValueExtractor |
Extrait la valeur d'une clé spécifiée d'un champ source au format JSON. La valeur extraite alimente le champ de la table de destination. Une seule clé peut être extraite. |
Extrait la valeur de la clé title à partir de {"title":"the content","body":"the content"}. Si la valeur est au format JsonArray, elle est convertie en type de champ Array dans le système. « Assurez-vous que le type de la valeur extraite correspond au type de champ de la table de destination ; sinon, les données correspondantes seront perdues. » Le format JsonArray mentionné ici fait référence au format défini par notre système. Par exemple, le type de champ literal_array : {"tags":["a","b","c"]}, ou le type de champ int_array : {"tags":[1,2,3]}. |
|
MultiValueSpliter |
Fractionne la valeur d'un champ source en plusieurs valeurs à l'aide d'un délimiteur. Les valeurs résultantes alimentent le champ de la table de destination, qui doit être de type ARRAY. (Si le délimiteur est un caractère non imprimable, utilisez un caractère Unicode pour le représenter, tel que \u001D.) |
Le contenu de la source de données est 1,2,3. Spécifiez la virgule « , » comme délimiteur en saisissant directement une virgule anglaise. |
|
KeyValueExtractor |
Extrait la valeur d'une clé spécifiée d'un champ source au format clé-valeur (KV). La valeur extraite alimente le champ de la table de destination. Une seule clé peut être extraite. Le délimiteur est facultatif. |
Le contenu réel est key1:value1,value2;key2:value3, avec les clés key1 et key2, un point-virgule comme délimiteur de clés, deux-points comme délimiteur clé-valeur et une virgule comme délimiteur de valeurs multiples. Si un délimiteur de valeurs multiples est configuré, la valeur est convertie en type de champ Array dans le système. « Assurez-vous que le type de la valeur extraite correspond au type de champ de la table de destination ; sinon, les données correspondantes seront perdues. » Si deux clés identiques existent, seule la valeur de la dernière clé est extraite. |
|
StringCatenateExtractor |
Concatène plusieurs champs spécifiés en une seule chaîne selon l'ordre indiqué. Ce plug-in ne prend pas en charge le type de champ int ; le type de champ literal est recommandé. Séparez la liste des champs par des virgules (les champs doivent provenir des champs de destination). |
Concatène le contenu de field1 et field2 en une nouvelle valeur de champ à l'aide de « _ ». De plus, la variable système $table permet de récupérer le nom de la table actuelle ($table s'affiche uniquement lorsqu'un caractère générique de sharding de table est configuré). |
|
HTMLTagRemover |
Supprime les balises HTML d'un champ source et copie le contenu résultant dans le champ actuel. Si le champ source est configuré comme étant le champ actuel, le contenu est remplacé. |
Texte original : <div id="copyright">OpenSearch</div>. Après application du plug-in, le texte est analysé comme « OpenSearch ». |
Pour consulter les bonnes pratiques, voir Configurer le plug-in MultiValueSpliter.