2015-10-13 48 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

相關問題