CouchDB在map函数中成对发出所有文档

时间:2014-01-13 01:53:10

标签: couchdb similarity cartesian-product closest-points

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

例如,假设DB包含ID为abc - >的文档。那么视图应该发出9个键aaabacba,...,cc(假设没有分组)

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

这看起来非常简单,但Google和SO搜索没有结果。我在这里错过了一些神奇的关键词吗?

1 个答案:

答案 0 :(得分:0)

我想不出在CouchDB中这样做的方法 - 从根本上说,这不适合映射/减少索引 - 在map函数中你一次只能访问一个文档并处于reduce阶段你需要减少结果(计算笛卡儿积可以扩展它)。

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