在数组字段上创建Couchbase索引

时间:2018-06-21 09:38:48

标签: indexing couchbase

您好如何在示例文档所在的数组字段上创建索引

   { 
"name": [     {
      "family": "Smith",
      "given": [
        "Kam"
      ],
      "prefix": [
        "Mrs."
      ],
      "use": "official"
    },
    {
      "family": "Johns",
      "given": [
        "Kam"
      ],
      "use": "maiden"
    }
  ]
}

我想在家庭和给定字段上写一个搜索查询(如)...如何创建索引和建议查询..我不是沙发床

1 个答案:

答案 0 :(得分:1)

此查询选择姓氏为“ Smith”,名称为“ Kam”的客户:

select * from customer
where any n in name satisfies n.family = 'Smith' and 
          any fn in n.given satisfies fn = 'Kam' end end

请注意,由于在数据中使用了嵌套数组,因此使用了嵌套ANY子句。

然后您可以像这样在姓氏上创建索引:

CREATE INDEX customer_name ON customer
   ( DISTINCT ARRAY n.family FOR n IN name END)

使用索引时没有任何提示。通过将EXPLAIN添加到查询的开头,您可以看到它正在被使用。这将为您提供一个包含索引扫描运算符的JSON查询计划。

您可以在此处了解有关数组索引的更多信息: https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/indexing-arrays.html