2

タイプ int-array のフィールドでこの問題が発生しています。Node.js 用の aws-sdk を使用して、CloudSearchDomain.uploadDocuments()メソッドを介してドキュメントを送信しています。ドキュメントの JSON ( searchContent変数内) はノード プロセスで作成され、次を使用します。

var params = {
  contentType: 'application/json',
  documents: JSON.stringify([searchContent])
};
csd.uploadDocuments(params, function(err, data){
  ...(callback process)...
});

文字列化されていないsearchContentオブジェクトは次のようになります。

{ id: 1,
  type: 'Product',
  hash_type_id: 'Product-1',
  name: 'Test product',
  description: 'A test product',
  category: [ 2 ],
  content: '<some text here>',
  state: [ 1 ],
  hash_all: '<some text>'
}

次のように文字列化されます。

[{"id":1,"type":"Product","hash_type_id":"Product-1","name":"Test product","description":"A test product","content":" <some text>","category":[2],"state":[1],"hash_all":"<some text>"}]

私が得ているエラーは次のとおりです。

{
  "message": "{ [\"The value of category cannot be a JSON array or object\"] }",
  "code": "DocumentServiceException",
  "time": "2014-11-20T01:24:27.499Z",
  "statusCode": 400,
  "retryable": false
}

前述のとおり、カテゴリ フィールドは int-array 型です。このメッセージが表示されるのはなぜですか?

更新:カテゴリ フィールドに型指定された配列 (Int16Array) を使用してみましたが、まったく同じ結果が得られました。

4

1 に答える 1