elasticsearch - AWS DynamoDB 中的数据类型创建和 URL 列表的弹性搜索
问题描述
我启用了 Aws DynamoDB 流并创建了一个 lambda 函数来将数据索引到 Elasticsearch。
在我的 DynamoDb 表中有一个名为 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 DB 类型。但是在 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"
}
等效的弹性搜索映射可以是
{
"mappings": {
"_doc": {
"properties": {
"url": {
"type": "keyword"
}
}
}
}
}
并且搜索查询可以是
POST index/_search
{
"query": {
"term": {
"url": "https://foo/bar/foo.pdf"
}
}
}
推荐阅读
- sql - postgres:以线性时间获取每天最早和最新的记录
- c++ - 当我明确调用类的析构函数时出现错误
- jquery - 如何知道每个函数中特定 div id 的 div 内容是否为空?
- bootstrap-4 - 使用 Bootstrap 4 在带有图标的输入组内堆叠 2 个输入?
- c# - 如何在我的国际象棋游戏中修复这个在棋子上出现移动的错误?
- python - 使用 spaCy 将列表中的复杂名词短语分块并生成扩充列表
- matlab - Does symbol capitalization matter in object files with a linked dll?
- c++ - GDB loads unfindable script on shell start
- python - 使用 Python 在 S3 中打开和保存 excel 文件
- regex - 使用 LaTeX $sim$ -> $\sim$ 查找和替换所有找到的文件中的字符串