为什么CouchDB视图支持压缩,而mango索引不支持压缩?

为什么CouchDB视图支持压缩,而mango索引不支持压缩?,couchdb,couchdb-mango,Couchdb,Couchdb Mango,当我阅读CouchDB文档时,我发现视图需要压缩而mango索引不需要压缩很奇怪。它们在本质上不是同一件事,并且受到清除未使用或旧条目的相同要求的约束吗?对我来说,这似乎是一个疏忽 我想我只需要澄清一下索引树在它们之间是如何不同的 谢谢 事实上可以压缩芒果索引,因为在/db/_index端点1创建的每个索引都有一个“ddoc”(设计文档),就像地图/缩小视图的设计文档一样 引用/db/_索引文档 Mango是CouchDB数据库的声明式JSON查询语言。 Mango包装了几种索引类型,从主索引开

当我阅读CouchDB文档时,我发现视图需要压缩而mango索引不需要压缩很奇怪。它们在本质上不是同一件事,并且受到清除未使用或旧条目的相同要求的约束吗?对我来说,这似乎是一个疏忽

我想我只需要澄清一下索引树在它们之间是如何不同的


谢谢

事实上可以压缩芒果索引,因为在
/db/_index
端点1创建的每个索引都有一个“ddoc”(设计文档),就像地图/缩小视图的设计文档一样

引用/db/_索引文档

Mango是CouchDB数据库的声明式JSON查询语言。 Mango包装了几种索引类型,从主索引开始 开箱即用。索引类型为json的Mango索引是使用 MapReduce视图。1

现在查看
/db/_compact/design doc
2端点的文档*

压缩与指定设计关联的视图索引 文档。压缩一个大的视图可能会得到更多的结果 存储比压缩实际数据库更重要。因此,您可以就地使用它 如果您知道一组特定的视图,则可以使用完整的数据库压缩 索引已受到最近数据库更改的影响

*重点矿山

由于每个“芒果索引”都有一个设计文档,因此任何芒果索引都可以使用
/db/_compact/design doc
端点进行压缩

这很容易用curl来验证。假设“stack”数据库中有一个带有ddoc=“foo json index ddoc”的mango索引

curl -v -X POST -H "Content-Type: application/json" http://localhost:5984/stack/_compact/foo-json-index-ddoc 
详细(成功)响应如下所示

< HTTP/1.1 202 Accepted
< Cache-Control: must-revalidate
< Content-Length: 12
< Content-Type: application/json
< Date: Tue, 18 May 2021 14:30:33 GMT
< Server: CouchDB/2.3.1 (Erlang OTP/19)
< X-Couch-Request-ID: bbf2b7b0c9
< X-CouchDB-Body-Time: 0
<
{"ok":true}
* Connection #0 to host localhost left intact
为了清楚起见,我省略了授权

[1]
[2]