Couchbase视图是否不立即更新?

Couchbase视图是否不立即更新?,couchbase,couchbase-view,Couchbase,Couchbase View,我只是按照这个来测试Couchbase视图。当编辑视图使用Couchbase GUI并保存时,视图没有立即更新 例如,使用php脚本将一些数组存储到Couchbase,并在“dev_sessions”文档中定义一个命名的“last”视图: function (doc) { if(doc.namespace == 'sessions') { emit(doc.lastSeen, 1); } } 然后使用curl获得json结果。 第一次: $ curl http://192.168.228.13

我只是按照这个来测试Couchbase视图。当编辑视图使用Couchbase GUI并保存时,视图没有立即更新

例如,使用php脚本将一些数组存储到Couchbase,并在“dev_sessions”文档中定义一个命名的“last”视图:

function (doc) {
if(doc.namespace == 'sessions') {
emit(doc.lastSeen, 1);
}
}
然后使用curl获得json结果。 第一次:

$ curl
http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[ ] }
$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[
{"key":1352872218,"value":1},
{"key":1352879418,"value":3}
]
}
第二:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[
{"key":1352872218,"value":1},
{"key":1352879418,"value":3}
]
}
另一个测试是在php脚本中添加新数组:

'eb255262434407766f212d1b6f23' => array(
'namespace' => 'sessions',
"type" => "user",
"userID" => "1107",
'lastSeen' => time(),
'firstSeen' => time(),
"remoteAddress" => "2.3.4.5",
"location" => "Vienna/Austria",
"name" => "Golden K"
再次运行curl,第一次:

$ curl
http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[ ] }
$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[
{"key":1352872218,"value":1},
{"key":1352879418,"value":3}
]
}
第二次:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[
{"key":1352875163,"value":1},
{"key":1352882363,"value":4}
]
}

如果更改了数据或视图脚本,请单击Couchbase GUI中的
视图-'Show Results'
按钮,第一次和第二次会有所不同。
为什么视图不立即更新?

这是预期的行为。Couchbase默认情况下在调用视图后“更新”索引。这需要更快的响应时间

执行视图时,可以使用stale参数控制视图的状态(实际上是其索引)

在您的情况下,只需执行以下操作:

curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true&stale=false'
它将在将数据返回到应用程序之前更新索引

您可以在文档中找到有关此参数以及视图工作方式的所有信息:


如果更改了数据或视图脚本,只有第一次从一个视图中获取结果时才不会更新。第二次运行后,此视图和其他所有视图看起来都会更新同步。结果正确。THX。很明显。顺便说一句,Couchbase论坛的垃圾邮件阻止对亚洲IP来说太严格了。我已经更改了三个IP,从中国到香港,但是仍然无法提交新帖子。%>\u不确定它是否与IP地址相关,但可能是因为您在邮件中添加了大量链接。我会把这件事告诉Couchbase社区经理