Что не так с этим индексом couchbase? - PullRequest
3 голосов
/ 08 марта 2019

я создал этот индекс базы данных

CREATE INDEX `idx_additionalOrderCode` ON 
`order`(ALL ARRAY s.`value` FOR s IN additionalOrderCode WHEN s.`typeCode`= "MYCODE" END)
WHERE _class = "com.entrprise.OrderEntity" 

на основе примера на этой странице

https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/indexing-arrays.html

, но когда я запрашиваю этот индекс с помощью этого запроса select:

SELECT * FROM `order` 
WHERE `_class` = "com.entrprise.OrderEntity" 
AND ANY s IN additionalOrderCode SATISFIES ( s.`value` = "130047777" ) and (s.typeCode = "MYCODE" ) END

Я получаю сообщение об ошибке

 "msg": "No index available on keyspace order that matches your query. Use CREATE INDEX or CREATE PRIMARY INDEX to create an index, or check that your expected index is online."

Ни один первичный индекс не поддерживает запрос, я хочу, чтобы все мои запросы были поддержаны вторичными индексами.

ЯИспользование Enterprise Edition 6.0.0 build 1693

Спасибо за помощь

1 Ответ

2 голосов
/ 08 марта 2019

решил это с помощью этого индекса (я только удалил ВСЕ между различными и массивом)

CREATE INDEX `idx_additionalOrderCode` ON `order`
 (distinct (array (aoc.`value`) for `aoc` in `additionalOrderCode` WHEN aoc.`typeCode`= "WLEC"  END), orderTypeCode)
 WHERE (`_class` = "com.entreprise.OrderEntity")
...