3

我正在尝试使用 Appengine Search API 让用户查询多个数据集,每个数据集都有自己的架构。进一步来说:

用户可以访问多个数据集。每个数据集都有很多行。每个数据集都有一组列。每列都有一个名称和一个类型。跨数据集的列可能存在名称冲突,并且这些冲突可能具有不同的类型。

我希望用户能够通过对搜索 api 的一次查询来搜索他们的所有数据集。如果我为每个数据集中的每一行创建一个文档,我怀疑当你对每个数据集中的所有字段进行联合时,会有超过 1000 个不同的字段(其中一个字段 = 一个列)。

我怎样才能解决这个问题?还是我必须建立多个索引(每个数据集一个)并发出多个请求?这些多个请求可以并行发生吗?这种方法的缺点/成本是什么?

4

1 回答 1

0

一个很好的起点是python 文档,因为底层框架是相同的。话虽如此,这里的 YMMV 作为 Java 端仍然是实验性的。

并非文档中的每条记录都必须属于同一类型。您所需要的只是一种从 document_id 到您的对象的方法,因此 <tableId>:<objectId> 在这里很好。但是,根据文档,

当前,每个给定索引架构的命名字段限制为 1000 个。

所以这对你来说可能是个问题。如果您不关心列上的匹配,您可以简单地将您的对象转换为具有单个字符串的文档,然后从那里进行文本搜索。然后一切都可以在一个列中。然后,您可以从 document_id 获取 <tableId>:<objectId> 并从数据存储中获取数据。

于 2012-09-18T00:14:45.867 回答