

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 SPARQL 和 Gremlin 資料類型對應至 OpenSearch
<a name="full-text-search-non-string-indexing-mapping"></a>

OpenSearch 中的新資料類型映射是根據屬性或物件中使用的資料類型所建立。因為某些欄位包含不同類型的值，所以初始對應可能會排除欄位的某些值。

Neptune 資料類型會對應到 OpenSearch 資料類型，如下所示：


| SPARQL 類型 | Gremlin 類型 | OpenSearch 類型 | 
| --- | --- | --- | 
| `XSD:int`<br />`XSD:unsignedInt`<br />`XSD:integer`<br />`XSD:byte`<br />`XSD:unsignedByte`<br />`XSD:short`<br />`XSD:unsignedShort`<br />`XSD:long`<br />`XSD:unsignedLong` | `byte`<br />`short`<br />`int`<br />`long` | `long` | 
| `XSD:float`<br />`XSD:double`<br />`XSD:decimal` | `float`<br />`double` | `double` | 
| `XSD:boolean` | `bool` | `boolean` | 
| `XSD:datetime`<br />`XSD:date` | `date` | `date` | 
| `XSD:string`<br />`XSD:time` | `string` | `text` | 
| *自訂資料類型* | *無* | `text` | 
| *任何其他資料類型* | *無* | `text` | 

例如，下列 Gremlin 更新查詢會針對要新增至 OpenSearch 的「newField」產生新的對應，即 `{ "type" : "double" }`：

```
g.V("1").property("newField" 10.5)
```

同樣地，下列 SPARQL 更新查詢會針對要新增至 OpenSearch 的「ex:byte」產生新的對應，即 `{ "type" : "long" }`：

```
PREFIX ex: <http://my/example#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>

INSERT DATA { ex:test ex:byte "123"^^xsd:byte }.
```

**注意**  
如您所見，從 Neptune 對應到 OpenSearch 的項目，其最後結果可能是在 OpenSearch 具有的資料類型與在 Neptune 具有的資料類型不同。不過，OpenSearch 中有一個明確的文字欄位「資料類型」，可記錄項目在 Neptune 中具有的資料類型。