【问题标题】:Couchbase Array indexingCouchbase 数组索引
【发布时间】:2018-09-15 21:53:25
【问题描述】:

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`);

有什么建议吗?

【问题讨论】:

    标签: indexing nosql couchbase n1ql


    【解决方案1】:

    索引为 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";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 2019-01-31
      相关资源
      最近更新 更多