Couchdb Cocuhdb是否适合这样的查询?

Couchdb Cocuhdb是否适合这样的查询?,couchdb,Couchdb,我一直在寻找摆脱GAE的方法,因为数据存储不支持我想用它做的很多事情 因此,我研究了CouchDB(以及其他),我非常喜欢在Cloudant中找到的REST接口和托管选项 但尽管我在谷歌上搜索并阅读了所有我能找到的文档,我仍然不确定这是否合适。 所以我来到这里,希望有人能有更多的洞察力 我编写网络应用程序,我想做的许多项目都会涉及如下查询: 查找用户输入横向/纵向边界框内的所有条目,其中开始时间小于用户输入时间-1,结束时间大于用户输入时间-2,并且在用户输入标记列表中具有所有标记 这甚至不是伪

我一直在寻找摆脱GAE的方法,因为数据存储不支持我想用它做的很多事情

因此,我研究了CouchDB(以及其他),我非常喜欢在Cloudant中找到的REST接口和托管选项

但尽管我在谷歌上搜索并阅读了所有我能找到的文档,我仍然不确定这是否合适。 所以我来到这里,希望有人能有更多的洞察力

我编写网络应用程序,我想做的许多项目都会涉及如下查询:

查找用户输入横向/纵向边界框内的所有条目,其中开始时间小于用户输入时间-1,结束时间大于用户输入时间-2,并且在用户输入标记列表中具有所有标记

这甚至不是伪代码,但我希望它有意义

我不仅仅是在寻找一个“你不能在CouchDB中做到这一点”。某种解释,或者类似“如果你可以不带标签生活,那么你可以这样做:”

我想使用Cloudant服务,所以Geococock显然是不可能的,但是他们做了一些应该像lucene一样工作的事情,但是这是否意味着查询速度很慢

正如你所说,我在这里有点困惑,所以只要你尽你所能把我弄清楚,我会很高兴:)

不提标签(这本身已经是一个问题),你描述的是一个多维查询:你有几个“坐标”(纬度,长,开始时间,结束时间)并为每个坐标提供一个范围

CouchDB本身根本无法执行多维查询——只能跨一个坐标执行一维查询

标记当然是可能的,但这取决于您是需要列表中至少有一个标记的文档,还是需要列表中有所有标记的文档。第一种情况很简单(使用批量API为每个标记运行一个查询),第二种情况可能需要过多的内存(如果一个文档有N个标记,它需要发出2N-1个标记集,以便匹配所有可能涉及它的标记组合,因此您应该为文档中的标记数或查询中的标记数设置上限)


Lucene确实允许多维和基于关键字的查询,但我不能保证它们的性能。

我得到了我想要的。只是朝着正确的方向前进了一步。Cloudant搜索似乎正是我需要的。现在我只需要弄清楚“社交授权”是否只能是oauth或者如果我也可以使用openid,但这是另一个问题。