本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Connect Customer Profiles 中的对象类型映射示例
生成资料的对象类型映射
以下示例显示了填充标准资料的数据。
以下是传入对象:
{
"account": 1234,
"email": "john@examplecorp.com",
"address": {
"address1": "Street",
"zip": "Zip",
"city": "City"
},
"firstName": "John",
"lastName": "Doe"
}
以下代码显示传入该对象映射到标准资料对象,并对 PersonalEmailAddress
、fullName
和 accountId
编制索引,这是一个唯一键。
{
"Fields": {
"accountId": {
"Source": "_source.account",
"Target": "_profile.AccountNumber",
"ContentType": "NUMBER"
},
"shippingAddress.address1": {
"Source": "_source.address.address1",
"Target": "_profile.ShippingAddress.Address1"
},
"shippingAddress.postalCode": {
"Source": "_source.address.zip",
"Target": "_profile.ShippingAddress.PostalCode"
},
"shippingAddress.city": {
"Source": "_source.address.city",
"Target": "_profile.ShippingAddress.City"
},
"personalEmailAddress": {
"Source": "_source.email",
"Target": "_profile.PersonalEmailAddress",
"ContentType": "EMAIL_ADDRESS"
},
"fullName": {
"Source": "{{_source.firstName}} {{_source.lastName}}"
},
"firstName": {
"Source": "_source.firstName",
"Target": "_profile.FirstName"
},
"lastName": {
"Source": "_source.lastName",
"Target": "_profile.LastName"
}
},
"Keys": {
"_email": [
{
"FieldNames": ["personalEmailAddress"]
}
],
"_fullName": [
{
"FieldNames": ["fullName"]
}
],
"_account": [
{
"StandardIdentifiers": ["PROFILE","UNIQUE"],
"FieldNames": ["accountId"]
}
]
}
}
请注意,已对 email
和 fullname
编入索引,但它们不用于搜索资料。相应账户为唯一键。需要指定对象。每当摄取具有相同账户 ID 的对象时,它都会覆盖前一个具有相同账户 ID 的对象。
标准资料对象中填充了多个字段(请参阅已定义 Target
的字段)。
未填充标准资料的对象类型映射
此示例显示了一个更复杂的使用案例。它会摄取与资料相关的数据,但不一定会填充标准资料对象。
以下是传入对象:
{
"email": "john@examplecorp.com",
"timestamp": "2010-01-01T12:34:56Z",
"subject": "Whatever this is about",
"body": "Body of ticket"
}
以下是映射此数据的一种方法:
{
"Fields": {
"email": {
"Source": "_source.email",
"ContentType": "EMAIL_ADDRESS"
},
"timestamp": {
"Source": "_source.timestamp"
}
},
"Keys": {
"_email": [
{
"StandardIdentifiers": ["PROFILE","LOOKUP_ONLY"],
"FieldNames": ["email"]
}
],
"ticketEmail": [
{
"StandardIdentifiers": ["PROFILE","SECONDARY","NEW_ONLY"],
"FieldNames": ["email"]
}
],
"uniqueTicket": [
{
"StandardIdentifiers": ["UNIQUE"],
"FieldNames": ["email","timestamp"]
}
]
}
}
该示例摄取相应数据,且在首次查询时,它会摄取电子邮件地址。
-
如果电子邮件地址与单个资料匹配,则使用该电子邮件地址将数据附加到该特定的资料。由于不存在其他唯一标识符,因此票证的唯一标识符由电子邮件和时间戳组成。
-
如果指定的电子邮件中不存在任何资料,则会创建一个新的资料,其中填写了
EmailAddress
的单个字段。摄取的对象将附加到此新的推断资料。可以找到相应资料的两个可搜索键是_email
和uniqueTicket
。 -
如果存在具有指定电子邮件地址的多个资料,则会创建一个新资料,其中填写了
EmailAddress
的单个字段,并将对象附加到此新资料。除了_email
和uniqueTicket
之外,还使用定义的ticketEmail
键创建此资料。该电子邮件中的任何后续票证都将分配给此新的推断的资料。其原因是,_email
键引用三个资料,因此被丢弃,但ticketEmail
键仅引用单个资料(新推断的资料)并且仍然有效。 -
如果创建了新的推断的资料,则将用创建该资料的第一个对象填充
EmailAddress
字段。