3

我正在尝试将我的数据文档上传到 CloudSearch。我正在将数据上传到一个名为 test.json 的文件中,它具有以下内容。

[
    {
        "type": "add", 
        "id": "1-1", 
        "fields": {
            "id": 1,
            "type": 1,
            "address": "Moeboda 4",
            "city": "Alvesta",
            "country": "Sweden",
            "rooms": 3,
            "size": 45,
            "price": 275000
        }
    }
]

我遇到以下问题:

  1. CloudSearch 告诉我,上传的唯一字段是: content, content_encoding, content_type, resourcename

  2. 当我下载生成的“批处理”时,我得到以下数据:

    [ {
        "type" : "add",
        "id" : "test.json",
        "fields" : {
            "content" : "[\r\n\t{\r\n\t\t\"type\": \"add\", \r\n\t\t\"id\": \"1-1\", \r\n\t\t\"fields\": {\r\n\t\t\t\"id\": 1,\r\n\t\t\t\"type\": 1,\r\n\t\t\t\"address\": \"Moeboda 4\",\r\n\t\t\t\"city\": \"Alvesta\",\r\n\t\t\t\"country\": \"Sweden\",\r\n\t\t\t\"rooms\": 3,\r\n\t\t\t\"size\": 45,\r\n\t\t\t\"price\": 275000\r\n\t\t}\r\n\t}\r\n]",
            "resourcename" : "test.json",
            "content_encoding" : "UTF-8",
            "content_type" : "application/json"
        }
    } ]
    

所以我猜 AWS CloudSearch 认为我的 JSON 是一个字符串,所以它创建了一个新文件,其中包含其现在的字段(内容、资源名称、内容编码、内容类型)并用我的“字符串”填充它,然后也将其转义,因为字符串应该被转义。

我不知道为什么会这样,我已经为此工作了好几个小时。我一直在尝试 .txt 文件、.json、更改字符集、删除括号等,但没有任何效果。

是的,我已经设置了索引选项,我已经设置了我要上传的所有字段。看截图:

在此处输入图像描述

4

1 回答 1

2

此问题与 .py 文件的字符编码有关。当“强制”保存为 UTF-8 时,它起作用了。我认为我的编辑已将其保存为“带有 BOM 的 UTF-8”。

所以如果你遇到这个问题。三重检查您的编码和字符集。

于 2014-12-14T13:37:54.543 回答