在 AWS DynamoDB 中创建数据类型并弹性搜索 URL 的列表

Datatype creation in AWS DynamoDB and elastic search for List of URL's

我启用了 Aws DynamoDB 流并创建了一个 lambda 函数来将数据索引到 Elasticsearch。

在我的 DynamoDb table 中有一个名为 URL 的列,我将在其中存储 URL 的单行列表。

URL 最像 AWS S3 对象

的对象 URL

流式传输后,我将数据索引到弹性搜索中,我的问题是我更喜欢在 DynamoDB(单行)和 Elasticsearch(单个文档)中存储多个 URL 的数据类型是什么

有人可以帮助我以最有效的方式实现这一目标吗?提前致谢

Json结构

 {
      "id":"234561",
      "policyholdername":"xxxxxx",
      "age":"24",
      "claimnumber":"234561",
      "policynumber":"456784",
      "url":"https://dgs-dms.s3.amazonaws.com/G-3114_Textract.pdf",
      "claimtype":"Accident",
      "modified_date":"2020-02-05T17:36:49.053Z",
      "dob":"2020-02-05T17:36:49.053Z",
      "client_address":"no,7 royal avenue thirumullaivoyal chennai"
    }

将来对于一个索赔号应该有多个 URL 那么,如何处理呢?

不确定 Dynamo 数据库类型。但是在 Elasticsearch 中没有专门的列表类型。要存储字符串列表(在您的情况下为 URL),您可以使用关键字字段类型。

例如你的数据可以像

 {
      "id":"234561",
      "policyholdername":"xxxxxx",
      "age":"24",
      "claimnumber":"234561",
      "policynumber":"456784",
      "url":["https://dgs-dms.s3.amazonaws.com/G-3114_Textract.pdf","https://foo/bar/foo.pdf"]
      "claimtype":"Accident",
      "modified_date":"2020-02-05T17:36:49.053Z",
      "dob":"2020-02-05T17:36:49.053Z",
      "client_address":"no,7 royal avenue thirumullaivoyal chennai"
    }

等效的 elasticsearch 映射可以是

{
  "mappings": {
    "_doc": {
      "properties": {
        "url": {
          "type": "keyword"
        }
      }
    }
  }
}

并且搜索查询可以是

POST index/_search
{
    "query": {
        "term": {
            "url": "https://foo/bar/foo.pdf"
        }
    }
}