couchdb中的大数组管理
我使用CouchDB来存储已爬网的网站。例如:couchdb中的大数组管理,couchdb,Couchdb,我使用CouchDB来存储已爬网的网站。例如: { "_id": "doc-http:80-example.com/2012/09/", "_rev": "2-532ce885cdb56261cb6d21903cd74c56", "contentType": "text/html; charset=UTF-8", "lastModified": "2013-11-22T17:41:33.471Z", "schema": "document", "hostnam
{
"_id": "doc-http:80-example.com/2012/09/",
"_rev": "2-532ce885cdb56261cb6d21903cd74c56",
"contentType": "text/html; charset=UTF-8",
"lastModified": "2013-11-22T17:41:33.471Z",
"schema": "document",
"hostname": "example.com",
"uri": "/2012/09/",
"port": 80,
"protocol": "http:",
"source": [
"http://example.com/page/1",
"http://example.com/page/2",
],
"_attachments": {
"content": {
}
}
}
“source
”元素是一个数组,用于存储链接到该特定页面的所有页面。数组可以快速增长,我不想每次只添加一个链接时就获取并放置整个文档
是否可以在不重新发送整个“
source
”的情况下更新文档并插入另一个指向源代码的链接 您是否检查了更新处理程序
我自己没有做过,但我已经读到你应该能够使用它来修补文档。你检查过
更新处理程序吗
我自己没有这样做,但我已经了解到,您应该能够使用它来修补文档。进一步的选择是,每个源和目标URL使用一个文档,而不是每个目标URL使用一个文档和一长串源
{
...
"sourceUrl": "https://example.com/page/1",
"targetUrl": "https://target.com/page"
}
然后使用视图获取指向给定目标URL的所有源URL的列表:
function(doc) {
emit(doc.targetUrl, doc.sourceUrl);
}
您也可以使用\u count
reduce以这种方式快速检索到目标页面的入站链接的计数,预先计算该计数以在UI中显示
此外,emit(doc.sourceUrl,doc.targetUrl)
将为您提供一个可从给定源向外查询链接的视图。另一种选择是,每个源和目标URL使用一个文档,而不是每个目标URL使用一个文档和一长串源
{
...
"sourceUrl": "https://example.com/page/1",
"targetUrl": "https://target.com/page"
}
然后使用视图获取指向给定目标URL的所有源URL的列表:
function(doc) {
emit(doc.targetUrl, doc.sourceUrl);
}
您也可以使用\u count
reduce以这种方式快速检索到目标页面的入站链接的计数,预先计算该计数以在UI中显示
此外,emit(doc.sourceUrl,doc.targetUrl)
将为您提供一个易于查询的视图,用于从给定源向外查询链接