从 java 将数据插入 CouchDB 的分区

Insert data in a partition of CouchDB from java

我在 JAVA 中为 CouchDB 使用 cloudant API。我已经从 Java 创建了一个分区数据库,但现在我不知道如何创建一个分区并将我的 json 插入到这个分区中。

final String dbName = "cinema";
        CloudantClient client = ClientBuilder.url(new URL(url)).username(username).password(passw).build();
        System.out.println("Server version: " + client.serverVersion());
        Database db = CreatePartitioned.createPartitionedIfNotExists(client, dbName);
        db.createIndex("movies"); //doesn't work

我有这个错误:

Exception in thread "main" com.cloudant.client.org.lightcouch.CouchDbException: 400 Bad Request at http://127.0.0.1:5984/movielens/_index. Error: bad_request. Reason: invalid UTF-8 JSON.
    at com.cloudant.client.org.lightcouch.CouchDbClient.execute(CouchDbClient.java:597)
    at com.cloudant.client.org.lightcouch.CouchDbClient.executeToInputStream(CouchDbClient.java:648)
    at com.cloudant.client.api.Database.createIndex(Database.java:391)
    at provaCouch.Prova_CouchDB.main(Prova_CouchDB.java:20)

我必须创建 3 个分区,网上的信息很少。有人知道如何解决这个问题吗?

您似乎没有向 createIndex() 发送正确的参数。

查看它引用的 docstring for the createIndex method, and the API doc。您可能希望改用索引构建器 (com.cloudant.client.api.query.JsonIndex.Builder)。