【发布时间】:2018-02-26 10:15:35
【问题描述】:
我无法使用 groovy 脚本在 couchbase 上创建主索引。以下是我使用的代码行:-
@Grab('com.couchbase.client:java-client:2.2.6')
import java.util.concurrent.CountDownLatch;
import com.couchbase.client.java.Bucket;
import com.couchbase.client.java.Cluster;
import com.couchbase.client.java.CouchbaseCluster;
import com.couchbase.client.java.document.JsonDocument;
import com.couchbase.client.java.document.json.JsonObject;
import com.couchbase.client.java.CouchbaseCluster
import com.couchbase.client.java.query.N1qlQuery;
import com.couchbase.client.java.query.N1qlQueryResult;
import com.couchbase.client.java.query.N1qlQueryRow;
import com.couchbase.client.java.query.SimpleN1qlQuery;
import com.couchbase.client.java.env.CouchbaseEnvironment;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder().connectTimeout(10000).build();
def cluster = CouchbaseCluster.create(env, IPADDRESS);
def bucket = cluster.openBucket(BUCKET_NAME, BUCKET_PASSWORD);
log.info "Connection done"
String queryString = "CREATE PRIMARY INDEX `PrimInd` ON BUCKET_NAME"
bucket.query(N1qlQuery.simple(queryString))
log.info "Primary index created"
它给了我如下错误:-
java.lang.RuntimeException: java.util.concurrent.TimeoutException at this line:-
bucket.query(N1qlQuery.simple(queryString))
连接正确完成,相同的查询在 couchbase 服务器中工作。所以,我认为我的代码有问题。
您能帮我解决这个问题吗?
【问题讨论】:
-
不应该是
"CREATE PRIMARY INDEX `PrimInd` ON `BUCKET_NAME`"是"CREATE PRIMARY INDEX `PrimInd` ON `$BUCKET_NAME`"? -
好吧,你的意思是如果 BUCKET_NAME 是演示版,那么我应该使用这个查询吗? - 创建主索引
PrimIndON$demo" -
没有。您在脚本的前面使用变量
BUCKET_NAME,然后在查询中使用文字BUCKET_NAME -
好的,如果我的bucket名字是Demo..查询怎么写?
-
@Simon Baslé - 你能帮我解决这个问题吗?
标签: java groovy couchbase n1ql