0

我需要创建一个为每对文档发出一个值的视图(_all_docs 与自身的笛卡尔积)

例如,假设 DB 有 IDa为 , b, c-> 的文档,那么视图应该发出 9 个键aa, ab, ac, ba, ... , cc(假设没有分组)

例如,如果文档是带有坐标的“城市”,则视图会返回成对的城市和它们之间的距离(实际示例更复杂),因此我可以使用_list函数来计算“top10 最近的城市”等等。

这看起来是一个非常简单的任务,但是 Google 和 SO 搜索没有给出任何结果。我在这里错过了一些神奇的关键字吗?

4

1 回答 1

0

我想不出在 CouchDB 中执行此操作的方法 - 从根本上说,这不适合 map/reduce 索引 - 在 map 函数中,您一次只能访问一个文档,并且在您需要的 reduce 阶段减少结果(计算笛卡尔积会扩展它)。

如果您使用另一个系统来预先计算城市之间的距离,那么 CouchDB 可能非常适合存储和查询该笛卡尔积的结果(例如查找前 10 个最近的城市)。但是,您可能还想查看图形数据库(Neo4j 或 Giraph)。

于 2014-01-17T09:59:24.640 回答