2016-07-11 11 views

Antwort

2

couchbase-java-client-2.3.1 wird benötigt, um programmatisch primäre oder sekundäre Indizes zu erstellen. Einige der verwendbaren Methoden können auf der bucketManger selbe gefunden werden, die verwendet wird, um Ansichten aufzuladen. Zusätzlich kann die statische Methode createIndex verwendet werden, die DSL- und String-Syntax unterstützt.

Es gibt einige Optionen zum Erstellen Ihrer sekundären Indizes.

Option # 1:

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

Option # 2:

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

Option # 3 (eigentlich hier mehrere Optionen, da Methode createN1qlIndex

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

was bedeutet das 'x' vor fieldName? – SuperCow

+0

@SuperCow das ist von Couchbase N1ql DSL. Die x-Methode verwendet einen beliebigen N1ql-Ausdruck. Werfen Sie einen Blick auf die Java-Client-Dokumentation von couchbase für weitere Details –

+0

Vielen Dank für die Hilfe! – SuperCow

0

Sie sollten in der Lage ist überlastet um dies mit jedem 2.x zu tun, sobald Sie einen Eimer

haben

bucket.query (N1qlQuery.simple (querystring))

wo querystring etwas wie

String querystring ist = "PRIMARY INDEX USING AN " + bucketName + " GSI zu schaffen;";