使用MapReduce来处理Cloudant中的地理空间索引结果
我在Cloudant中使用地理空间索引来检索多边形内的所有文档。 现在我想为这些文件计算一些基本的静态值(例如,一个地区的平均年龄和收入总和)。
是否有可能查询地理索引,然后将结果传递给MapReduce函数?
我怎么能实现这一点,最好在数据库内? 我可以避免查询多边形中的文档ID,然后发送执行MapReduce(我正在处理大型数据集)的检索ID?
到目前为止工作的是查询索引以及使用视图(单独)。
我的地理索引
function (doc) { if (doc.geometry && doc.geometry.coordinates) { st_index(doc.geometry); } }
我的看法
function (doc) { var beitrag = doc.properties.beitrag; var schadenaufwand = doc.schadenaufwand; if(beitrag !== null && typeof beitrag === 'number' ) { emit(doc._id, doc.properties.beitrag); } }
示例geoJson文档(原始数据看起来相似)
{ "_id": "01bff77f642fc4249e787d2ded011504", "_rev": "1-25a9a1a15939d5b21af3fbcc5c2d6ed1", "type": "Feature", "geometry": { "type": "Point", "coordinates": [ 7.2316, 40.99 ] }, "properties": { "age": 34, "earnings": 982.7 } }
-
这个问题是类似的,但并没有真正帮助我: Cloudant – 将视图/ mapReduce应用于地理空间查询
-
这个演示可能是正确的方向: https : //examples.cloudant.com/simplegeo_places/_design/geo/index.html
这似乎是一个有用的function,但答案是'不'。 Geo索引器无法对数据执行聚合。
我想你必须按照你的想法去做 – 使用返回的doc ID列表来分配另一个map-reduce系统中的计算。