CouchDB地理位置索引插件 GeoCouch

fmms 13年前
     GeoCouch是一个CouchDB的插件,提供地理位置索引的查询,我们知道CouchDB是通过MapReduce建立视图的方式来进行非动态的查询,GeoCouch通过修改CouchDB的B-Tree索引为R-Tree的形式来实现空间索引。当然,由于CouchDB一切皆增量的模式,这里的R-Tree也是增量模式的。    <br /> 项目地址:    <a href="/misc/goto?guid=4958194131953266293" target="_blank">https://github.com/couchbase/geocouch</a>    <br />    <img title="索引.png" border="0" alt="索引.png" src="https://simg.open-open.com/show/c3eb406b4f2226aa81d0c8ee10ebb282.png" width="210" height="45" />    <br />    <p><a href="/misc/goto?guid=4958185675166984508" target="_blank">Apache CouchDB </a>是一个面向文档的数据库管理系统。它提供以 JSON 作为数据格式的 REST 接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。 CouchDB 是 Apache 基金会的顶级开源项目。</p>    <p>CouchDB落实到最底层的数据结构就是两类B+Tree 。</p>    <p><img title="Apache CouchDB 是一个面向文档的数据库管理系统" border="0" alt="Apache CouchDB 是一个面向文档的数据库管理系统" src="https://simg.open-open.com/show/963c4781e8ad87fbbb5a028519b7a486.png" width="292" height="340" /></p>    <p>与现在流行的关系数据库服务器不同,CouchDB 是围绕一系列语义上自包含的文档而组织的。 CouchDB 中的文档是没有模式的(schema free),也就是说并不要求文档具有某种特定的结构。 CouchDB 的这种特性使得相对于传统的关系数据库而言,有自己的适用范围。一般来说,围绕文档来构建的应用都比较适合使用 CouchDB 作为其后台存储。 CouchDB 强调其中所存储的文档,在语义上是自包含的。这种面向文档的设计思路,更贴近很多应用的问题域的真实情况。对于这类应用,使用 CouchDB 的文档来进行建模,会更加自然和简单。与此同时,CouchDB 也提供基于 MapReduce 编程模型的视图来对文档进行查询,可以提供类似于关系数据库中 SQL 语句的能力。 CouchDB 对于很多应用来说,提供了关系数据库之外的更好的选择。</p>    <div id="p_fullcontent" class="detail">     <p><br /> <a href="/misc/goto?guid=4958191599660313638" target="_blank">MapReduce</a>是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。</p>     <p>当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。</p>     <p><a href="/misc/goto?guid=4958183274341148845" target="_blank"><br /> Hadoop </a>- <span class="mw-redirect">Apache软件基金会</span>的<span class="mw-redirect">开放源码</span>项目,提供与MapReduce档案系统类似的功能。<br /> </p>     <p><img title="Hadoop - Apache软件基金会的开放源码项目,提供与MapReduce档案系统类似的功能。" border="0" alt="Hadoop - Apache软件基金会的开放源码项目,提供与MapReduce档案系统类似的功能。" src="https://simg.open-open.com/show/00dad2633094e5e4cb6c952ac32e81fe.jpg" width="300" height="71" /></p>     <p>Hadoop并不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架。</p>     <p></p>    </div>    <p> </p>