使用Amazon CloudSearch中的元数据填充搜索结果

时间:2015-01-19 17:03:26

标签: amazon-web-services amazon-cloudsearch

不幸的是,Amazon CloudSearch does not support nested 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 个答案:

没有答案