couchbase 中的键空间没有可用的索引

No index available on keyspace in couchbase

我有一个 couchbase 数据库,其中存储了文档,例如

{
  "_host": {
    "kind": "KIND1",
    "id": "ID1",
..
}

我创建了这个索引:

CREATE INDEX `kind-id-index` ON `dev`(`_host.kind`,`_host.id`)

但是当我使用这个查询时

@Query("#{#n1ql.selectEntity} where _host.kind= and _host.id= ")

我收到这个错误:

No index available on keyspace dev_wk_state that matches your query.

反引号位置错误。索引必须如下。

CREATE INDEX `kind-id-index` ON `dev`(`_host`.`kind`,`_host`.`id`);

由于字段中没有特殊字符,您也可以省略反引号。

CREATE INDEX `kind-id-index` ON `dev`(_host.kind,_host.id);

仅供参考: _host 是对象,kind 是对象中的字段(嵌套)。您引用为 _host.kind 或 `_host`.`kind`。如果你做 `_host.kind` 它寻找字段“_host.kind”不是子对象。 如果你想参考 s1 你必须使用 `f1.f2`.s1 因为在字段中有点你必须做 `f1.f2`.s1

{
  "_host": {
    "kind": "KIND1",
    "id": "ID1"
     },
  "f1.f2": { "s1": 10}
}