Couchbase 数组索引
Couchbase Array indexing
Couchbase 5.0 版
我正在尝试通过数组索引来加速下面的查询,但我做不对。
SELECT DISTINCT document_data.* FROM `optima` AS optima
UNNEST optima.documents AS document_data
UNNEST document_data.attachments AS attachment_data
WHERE optima.type = "accountDocument"
AND attachment_data.objectId IN ["18485,0"]
AND attachment_data.objectType IN ["account","service","cart","order"];
我创建了以下索引,但附件元素的数组索引似乎不起作用
CREATE PRIMARY INDEX `optima-primary-index` ON `optima` USING GSI;
CREATE INDEX idx_document_nested ON `optima`
(DISTINCT ARRAY document_data FOR document_data IN optima.documents END)
WHERE type = "accountDocument";
CREATE INDEX idx_attachment_nested ON `optima`
(DISTINCT ARRAY
(DISTINCT ARRAY attachment_data FOR attachment_data IN document_data.attachments END)
FOR document_data IN optima.documents END)
WHERE type = "accountDocument";
CREATE INDEX `idx_type` ON `optima`(`type`);
有什么建议吗?
索引为 attachment_data.objectId
CREATE INDEX idx_attachment_nested ON `optima`
(DISTINCT ARRAY
(DISTINCT ARRAY attachment_data.objectId FOR attachment_data IN document_data.attachments END)
FOR document_data IN optima.documents END)
WHERE type = "accountDocument";
Couchbase 5.0 版
我正在尝试通过数组索引来加速下面的查询,但我做不对。
SELECT DISTINCT document_data.* FROM `optima` AS optima
UNNEST optima.documents AS document_data
UNNEST document_data.attachments AS attachment_data
WHERE optima.type = "accountDocument"
AND attachment_data.objectId IN ["18485,0"]
AND attachment_data.objectType IN ["account","service","cart","order"];
我创建了以下索引,但附件元素的数组索引似乎不起作用
CREATE PRIMARY INDEX `optima-primary-index` ON `optima` USING GSI;
CREATE INDEX idx_document_nested ON `optima`
(DISTINCT ARRAY document_data FOR document_data IN optima.documents END)
WHERE type = "accountDocument";
CREATE INDEX idx_attachment_nested ON `optima`
(DISTINCT ARRAY
(DISTINCT ARRAY attachment_data FOR attachment_data IN document_data.attachments END)
FOR document_data IN optima.documents END)
WHERE type = "accountDocument";
CREATE INDEX `idx_type` ON `optima`(`type`);
有什么建议吗?
索引为 attachment_data.objectId
CREATE INDEX idx_attachment_nested ON `optima`
(DISTINCT ARRAY
(DISTINCT ARRAY attachment_data.objectId FOR attachment_data IN document_data.attachments END)
FOR document_data IN optima.documents END)
WHERE type = "accountDocument";