2016-07-11 3 views
1

Couchbases Java Client 2.2.2を使用してプログラムで作成して2次索引を発行できますか?カスタムのセカンダリインデックスを作成して公開したいのですが、Couchbase 4.1を実行しています。私はこれがCouchbaseのビューと関係があることを知っていますが、私はインデックスのために同じものを見つけることができません。Javaクライアントをプログラムで使用して索引を作成し公開する方法

答えて

2

インデックスをプライマリまたはセカンダリでプログラムで作成するには、couchbase-java-client-2.3.1が必要です。使用可能な方法の一部は、ビューをアップアップするのに使用されているのと同じものである。bucketMangerにあります。さらに、静的メソッドcreateIndexを使用して、DSLおよび文字列構文をサポートすることができます。

セカンダリインデックスを作成するオプションはいくつかあります。

オプション#1:

Statement query = createIndex(name).on(bucket.name(), x(fieldName)); 
N1qlQueryResult result = bucket.query(N1qlQuery.simple(query)); 

オプション#2:メソッドcreateN1qlIndex

bucket.bucketManager().createN1qlIndex(indexName, fields, where, true, false); 
+0

fieldNameの前にある「x」はどういう意味ですか? – SuperCow

+0

@SuperCowこれはcouchbase N1ql DSLからです。 xメソッドは任意のN1ql式を取ります。詳細については、couchbase Javaクライアントのドキュメントをご覧ください –

+0

おかげさまで助けてくれてありがとう! – SuperCow

0

を過負荷になっているので、ここで

String query = "BUILD INDEX ON `" + bucket.name() + "` (" + fieldName + ")"; 
N1qlQueryResult result = bucket.query(N1qlQuery.simple(query)); 

オプション#3(実際には複数のオプションあなたはできるはずですバケットを持っていれば、2.xでこれを行うには

のqueryStringが

列のqueryStringは= "GSIを用い" + bucketName + "のプライマリインデックスを作成します。" のようなものであるbucket.query(N1qlQuery.simple(のqueryString))

関連する問題