2015-10-13 49 views
1

我正在用CouchBase 4.0和java sdk 2.2进行测试。我插入了10个文档,其键始终以“190”开头。Couchbase查询最近没有看到文档添加

插入这10个文件后,我询问他们:

cb.restore("190", cache); 
Thread.sleep(100); 
cb.restore("190", cache); 

的 '恢复' 的方法中的查询是:

Statement st = Select.select("meta(c).id, c.*").from(this.bucketName + " c").where(Expression.x("meta(c).id").like(Expression.s(callId + "_%"))); 
N1qlQueryResult result = bucket.query(st); 

第一次调用恢复返回0文件:

Query 'SELECT meta(c).id, c.* FROM cache c WHERE meta(c).id LIKE "190_%"' --> Size = 0 

第二次调用(100ms以后)返回10个文档:

Query 'SELECT meta(c).id, c.* FROM cache c WHERE meta(c).id LIKE "190_%"' --> Size = 10 

我试着在'insert'语句中添加PersistTo.MASTER,但它都不起作用。

看来'插入'不是立即坚持。

任何帮助将非常感激。

琼。

回答

2

您正在使用N1QL来查询数据 - 并且N1QL只是最终保持一致(默认情况下),所以它只会在重新计算索引后才显示。这与数据是否持久无关(意思是:从RAM写入光盘)无关。

您可以尝试更改scan_consitency级别的默认值 - NOT_BOUNDED - 以获得一致的结果,但返回时间会更长。

read more here

java scan_consitency options

相关问题