Couchbase Array индексация - PullRequest
       52

Couchbase Array индексация

0 голосов
/ 14 сентября 2018

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"];

Я создал следующие индексы, но массивЭлемент index для вложений не работает

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

Есть предложения?

1 Ответ

0 голосов
/ 15 сентября 2018

Индекс как 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";
...