注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
必填属性是必须有值的Object类型属性。您可以使用此Object类型属性以验证该属性没有空值的对象,或者在其为数组属性时验证没有空数组。此验证适用于来自支持数据源的数据和通过操作进行的编辑。
在处理必填属性时,请记住以下几点:
请注意,如果当前在属性的支持列上设置了任何空值,重新索引将失败。要解决此问题,您必须更新支持数据源以不再在列中有空值,或者取消设置属性为必填。
您可能会偶尔遇到这种情况:由多个数据源支持的对象类型的必填属性中出现空值。当某个对象的记录在某些数据源中存在,但在提供必填属性的数据源中不存在时,就会出现这种现象。
以下示例说明了这种行为。假设有一个Movie
对象类型,有两个支持数据源和一个必填的Genre
属性。
数据源1
Movie Id | Title | Box office | Regions |
---|---|---|---|
101 | The Adventure Begins | 200m | ["USA", "Canada", "UK"] |
102 | Love in the City | 75m | [] |
103 | Galactic Battles | 500m | ["USA", "UK", "Australia"] |
数据源2
Movie Id | Budget | Genre (Required) | Director |
---|---|---|---|
101 | 50m | Adventure | Michael John Smith |
102 | 20m | Romance | Jane Doe |
103 | 150m | Sci-Fi |
如果将一个新的Movie
同时添加到两个支持数据源中,而没有为Genre
提供值,它将无法索引到Ontology。
然而,假设只有数据源1有新Movie
对象的行。
数据源1
Movie Id | Title | Box office | Regions |
---|---|---|---|
101 | The Adventure Begins | 200m | ["USA", "Canada", "UK"] |
102 | Love in the City | 75m | [] |
103 | Galactic Battles | 500m | ["USA", "UK", "Australia"] |
104 | Happy Ending | 150m | ["UK", "FRANCE"] |
数据源2
Movie Id | Budget | Genre (Required) | Director |
---|---|---|---|
101 | 50m | Adventure | Michael John Smith |
102 | 20m | Romance | Jane Doe |
103 | 150m | Sci-Fi |
上述示例将成功索引到Ontology中,尽管结果对象没有必填属性的值。
Property | Value |
---|---|
Movie Id | 104 |
Title | Happy Ending |
Box Office | 150m |
Regions | ["UK", "FRANCE"] |
Budget | |
Genre (Required) | |
Director |
同样适用于通过操作编辑创建的对象。Movie
对象可以成功创建或修改,如果它们只包含与数据源1
中的列相关联的属性。然而,如果操作向对象添加了来自数据源2
的属性,例如Budget
,那么该操作将无效并无法执行。这是因为对象现在将存在于数据源2
中,因此必须设置Genre
。