2012-09-06 36 views
3

我试图使用Appengine Search API让用户查询多个数据集,每个数据集都有自己的模式。更具体地说:全文搜索是否支持无模式索引?

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

我希望用户能够使用一个查询搜索所有数据集以搜索api。如果我在每个数据集中为每行创建一个文档,那么当您将每个数据集中的所有字段联合使用时,我怀疑会有超过1000个不同的字段(其中一个字段=一列)。

我该如何解决这个问题?或者我将不得不建立多个索引(每个数据集一个索引)并发出多个请求?这些多个请求可以并行发生吗?这种方法的缺点/成本是多少?

回答

0

一个好的起点是python documents,因为底层框架是相同的。说到YMMV这里作为Java方面仍然是实验性的。

并非每个记录都必须在文档中具有相同类型。所有你需要的是从document_id到你的对象的方式,所以<tableId>:<objectId>在这里很好。但是,根据文档,

对于给定的索引模式,目前限制为1000个命名字段。

因此,这可能是一个问题给你。如果你不关心列上的匹配,你可以简单地用一个字符串将你的对象翻译成一个文档,然后从那里进行文本搜索。那么一切都可以在一个列中。然后,您可以从document_id中获取<tableId>:<objectId>并从数据存储中获取数据。