2012-11-14 4 views
5

私はちょうどこのpostを実行してCouchbase Viewをテストします。編集ビューではCouchbase GUIを使用して保存しても、ビューはただちに更新されませんでした。 Couchbaseビューはすぐに更新されませんか?

example.WithのPHPスクリプトがCouchbase.Andにはいくつかの配列は、「dev_sessions」文書で指定された「最後の」ビューを定義ストアの

function (doc) { 
if(doc.namespace == 'sessions') { 
emit(doc.lastSeen, 1); 
} 
} 

は、次に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} 
] 
} 

別のテストでは、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 '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} 
] 
} 

2回目:変更されたデータやビュースクリプトは、CouchbaseのGUIでViews - 'Show Results'ボタンをクリックした場合

$ 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} 
] 
} 

は、最初&二時間が異なるん。 なぜビューがすぐに更新されないのですか?

+0

を変更したデータやビュースクリプト場合は、1つの視野に起因ます初回のみが更新されません2回目の実行後、このビューと他のすべてのビューはsync.結果がcorrentに更新されます。 – user1815744

答えて

12

これは予期された動作です。 Couchbaseはデフォルトで、ビューの呼び出し後にインデックスを「更新」します。そして、これはより速い応答時間を持つことです。

ビューを実行するときに、古いパラメータを使用してビュー(実際にはそのインデックス)のステータスを制御できます。

curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true&stale=false' 

そして、それはあなたのアプリケーションにデータを返す前に、インデックスを更新します。あなたの場合

だけで行います。

あなたはマニュアルには、このパラメータに関するすべての情報を見つけることができますし、ビューが働いているか:

http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-stale.html

+0

THX.BTW、Couchbase ForumsのスパムブロックはアジアのIPに対しては厳しいです。すでに中国から香港に3つのIPを変更しましたが、まだ新しい投稿を送信できません。%> _ <% – user1815744

+0

IPアドレスに関連していますが、おそらくあなたのメッセージに入れたリンクの数に起因します。私はそれをCouchbaseコミュニティーマネージャーに提出します –