如何在Cloud Datastore中搜索

时间:2017-11-01 17:21:56

标签: google-cloud-datastore

E.g。我正在建立一个房地产目录。我需要一堆属性,并通过参数搜索,如客厅数量,城市,地图上的区域,价格范围等。这里可能的组合数量很容易超过200个指数限制。

或者这是某种基于标签的搜索。这里的变化数量几乎是无限的。

如果我理解正确,Cloud Datastore就无法满足此类情况。但根据我的经验,我正在处理的几乎所有应用都需要这样的功能。那么,Cloud Datastore仅适用于直接单键搜索吗? Plus Search API可以处理全文搜索。但就是这样。这似乎不对,所以我想我在这里缺少一些基本点。

可能有一些额外的索引服务?还是建筑解决方案?

1 个答案:

答案 0 :(得分:1)

  

因此,Cloud Datastore仅适用于直接单键   只搜索?

显然不是 - 您最多可以使用200个复合索引。以及数据存储为每个索引属性保留的任意数量的隐式索引。

对于某些应用来说,这可能还不够,我承认。在那种情况下,可能需要一些其他解决方案。甚至可能是将数据存储与其他索引技术相结合的混合体?不确定,我还没有尝试过,因为我还没有遇到这样的需求。

但是在您的特定示例中,恕我直言,您可以使其符合200限制,而不会在实际功能上造成重大损失。只是不提供所有可能的组合 - 他们真的,真的需要吗?就个人而言,我发现能够在房地产应用程序中进行超过几十次(更不用说200次)不同种类的搜索,而且非常混乱/压倒性。

例如 - 在没有指定其他2个参数的情况下,仅按价格范围,卧室数量或城市搜索是否有意义?也许对于好奇,但恕我直言,没有真正的实际用途。如果您同意,那么简单地要求所有3个参数而不是允许它们的任何组合将有效地将您所需的复合索引的总数减少到原始的1/8。

或者,按升序和降序排序结果的能力并不是那么重要 - 您只能在一个方向上排序的每个参数的复合索引数量的一半。在高度主观的房地产背景下,通过不仅仅是几个属性进行排序也可能没什么价值。减少排序组合 - 减少复合索引。

仔细查看参数的数量和实际意义上的组合数量。削减不是绝对需要的东西,也许你可以找到一个不错的妥协,不需要你采用更复杂的方法。