AWS CloudSearch希望您将您的数据的扁平文档发送到索引以进行搜索,该索引类似于:
[
{"type": "add",
"id": "123456",
"fields": {
"account_id": "123456",
"name": "foo",
"addresses": []
}
}
]
假设我有一个数据库,其中有一个账户
表和一个地址
表。
每个账户都有许多
地址
。地址表包含以下字段:
地址_1
- 地址_2
- 城市
- 州
- zip
- 账户id(参考字段)
如何在CloudSearch文档结构中对地址进行非规范化,以便在accounts和addresses中的所有列中进行搜索?
或者我应该为每个表创建一个单独的搜索域?
我假设您的用例是:
我推荐以下两件事:
>
将每个地址作为单独的文档索引
我会将每个地址作为单独的文件编制索引。每个地址都有一个单独的文档,这将使您能够保持不同字段之间的关系(如果每个帐户都有一个城市数组和一个州数组,则会丢失这些字段)。
分别索引每个字段
我会分别为每个字段(城市、州等)编制索引。打破每个字段将使你能够独立搜索它们(例如获得克利夫兰的所有地址,哦),将它们用作方面,根据它们提高分数,等等。
以下是我提出的模式中的一些文档的示例:
[
{"type": "add",
"id": "<see below>",
"fields": {
"account_id": "123456",
"name": "John Smith",
"address_1": "1 Main St",
"address_2": "Apt 1",
"city": "Davenport",
"state": IA,
"zip": 52081
}
},
{"type": "add",
"id": "<see below>",
"fields": {
"account_id": "123456",
"name": "John Smith",
"address_1": "2 Elm St",
"city": "Lincoln",
"state": NE,
"zip": 23452
}
}
]
生成文档ID:
请注意,您需要一些非随机的方法来构造唯一的文档ID(每个帐户地址都是唯一的,而不仅仅是每个帐户)。类似于account_id加上地址、城市、州、邮政编码的散列就可以了,或者您可以向表中添加另一列来唯一标识它们(我更喜欢后者)。
我在Spring Data JPA中有两个实体: 目标是获取与user\u id相关的所有税款: User.java 税务ayment.jva 我不想要一个太多的注释从User.java和列映射在纳税user_id。 规格等级如下: 根据我获取所有与user\u id相关的税款的目标,规范是正确的还是错误的?
问题内容: 好的,我刚开始使用Firebase。我已阅读:https://www.firebase.com/docs/data- structure.html, 并且已阅读:https://www.firebase.com/blog/2013-04-12-denormalizing- is- normal.html 所以我很困惑,因为一个似乎与另一个矛盾。您可以按层次结构组织数据,但是如果您想使其
目录结构 软件手册是一部完整的书,建议采用下面的目录结构。 简介(Introduction): [必备] [文件] 提供对产品和文档本身的总体的、扼要的说明 快速上手(Getting Started):[可选] [文件] 如何最快速地使用产品 入门篇(Basics): [必备] [目录] 又称”使用篇“,提供初级的使用教程 环境准备(Prerequisite):[必备] [文件] 软件使用需要满足
我阅读了cassandra数据建模,除了非规范化数据可能会发生变化之外,一切都很清楚。我如何同步它?当用户电子邮件更改时,更新的方法是什么: < code>groupname是组的一部分,数据模型中的用户可能不知道任何组,因此在用户更改后无法更新电子邮件。 下面描述的解决方案是否合适? 向用户模型中添加一列(类型
问题内容: 我已经阅读了有关“ 构建数据”的Firebase文档。数据存储很便宜,但用户的时间却不便宜。我们应该针对get操作进行优化,并在多个地方编写。 因此,我可能会存储一个 列表 节点和一个 列表索引 节点,两者之间有一些重复的数据,至少是列表名称。 我正在使用ES6,并在我的javascript应用程序中承诺处理异步流,主要是在第一次数据推送后从firebase中获取ref键。 知道我的应
问题内容: 用例说明 我们有一个关系数据库,其中包含有关我们日常运营的数据。目的是允许用户使用全文本搜索引擎来搜索重要数据。数据经过规范化,因此不是进行全文查询的最佳形式,因此,其想法是对数据的一部分进行规范化,然后将其实时复制到Elasticsearch,这使我们能够创建快速而准确的搜索应用程序。 我们已经有了一个启用数据库操作(插入,更新,删除)事件搜索的系统。这些事件仅包含已更改的列和主键(