0

不幸的是,Amazon CloudSearch不支持嵌套 JSON,这意味着以下文档结构无效。

[{
    "type": "add",
    "id": 1,
    "fields": {
        "company_name": "My Company",
        "services": [
            {
                "id": 123,
                "name": "Construction",
                "logo": "logo1.png"
            },
            {
                "id": 456,
                "name": "Programming",
                "logo": "logo2.png"
            }
        ]
  }
}]

基本上我不能在services键下嵌套一组对象。在这种特殊情况下,只有嵌套name字段必须是可搜索的,所以我可以做的是以下几点:

[{
    "type": "add",
    "id": 1,
    "fields": {
        "company_name": "My Company",
        "services": [ "Construction", "Programming" ]
  }
}]

上面的 JSON 是有效的,我仍然可以搜索服务名称。但是,现在我丢失了一些显示搜索结果时需要的关于我的服务的元数据。有什么方法可以将元数据添加到 Amazon CloudSearch 中的文档中,并将其与我的搜索结果一起返回,以便在显示结果时使用它?

或者我是否必须在之后从我的数据库中获取这些额外的元数据,以使用显示结果所需的额外数据填充搜索结果?这似乎不可行,因为与直接从 CloudSearch 获取这些数据相比,它使我的代码复杂得多。即使我可以使用缓存,这也会影响搜索的性能 - 但如果可能的话,我有点想避免这种情况,因为我现在不需要它来做其他任何事情。

所以我的问题是:

  1. 我能否以某种方式将服务的元数据添加到 CloudSearch 文档中,并将其与我的搜索结果一起返回?
  2. 如果不是,我是否应该在收到来自 CloudSearch 的搜索结果后从我的数据存储中提取这些数据?
  3. 您还有其他解决方案或想法吗?有什么最佳实践吗?

先感谢您!

4

0 回答 0