Couchbase查询最近没有看到添加的文档

时间:2015-10-13 14:51:08

标签: java couchbase

我正在使用CouchBase 4.0和java sdk 2.2进行测试。我正在插入10个文件,其密钥始终以“190”开头。

插入这10个文件后,我用以下方法查询:

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

'restore'方法中的查询是:

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,但它都不起作用。

似乎'insert'不会立即保留。

任何帮助都会非常感激。

琼。

1 个答案:

答案 0 :(得分:3)

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

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

read more here

java scan_consitency options