0

我正在使用 scala 连接存储桶并在存储桶中插入数据。

case class User(
firstName: String,
lastName: String,
userName: String,
email: String)

bucket.upsert(SerializableDocument.create("usr::" + user.email,user))

我能够从存储桶中插入和检索数据。现在我想在用户的 firstName 字段上创建视图/二级索引。

val ensureIndex = Query.simple("CREATE INDEX firstName ON `user_account`(firstName)");
 val queryResult = bucket.query(ensureIndex)

val queryResult = bucket.query(ViewQuery.from("dev_ddl_firstName", "firstName"))

但是由于 queryResult.totalRows() 的结果,我得到了 0。

任何人都可以帮助我在沙发库中的字段上创建视图/二级索引的正确方法吗?

提前致谢。

4

2 回答 2

1

你在那里混合了两个概念。索引定义用于 N1QL 查询,尽管它确实创建了一个视图。通常,如果您通过 N1QL 查询创建索引,您将使用 N1QL 进行查询。

您正在运行的查询位于由它创建的视图上。我的怀疑是您需要发布它或对开发视图使用 full_set 参数。坚持使用N1QL 查询可能会更好。

于 2015-06-21T21:31:50.837 回答
0

除了 Matt Ingenthron 所说的之外,SerializableDocumentJava SDK 中还使用二进制标志存储数据。视图只能索引 JSON 文档的内容,不能索引二进制文件...

您可以使用您选择的编组器将您的实例转换为 JSON 字符串并使用RawJsonDocument它,或者通过将文档转换为JsonObject(SDK 简单的 JSON 操作类,但更多用于 Java)并使用JsonDocument.

于 2015-06-22T14:05:48.857 回答