couchbase - 这个 couchbase 索引有什么问题?
问题描述
我创建了这个 couchbase 索引
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 * 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."
没有主索引支持查询,我希望我的所有查询都由二级索引支持。
我正在使用企业版 6.0.0 build 1693
谢谢你的帮助
解决方案
用这个索引解决了它(我只删除了 distinct 和 array 之间的 ALL)
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")
推荐阅读
- c# - 如何将 Kubernetes 托管的 RabbitMQ 暴露给外部?
- node.js - 如何让代码等到文件更新?
- flutter - 颤振位置 - 车辆停止时速度未降至零
- flutter - 当我有计时器时进行颤振测试
- c++ - 静态数组声明
- typo3 - TYPO3 如何为“受限用户”正确配置对工作区子分支的访问
- visual-studio-code - 在vscode中,我只能在按alt键时获得悬停信息吗?
- node.js - 如何使用我们的域发送邮件而不被识别为垃圾邮件?
- javascript - 为什么状态更新时数据会发生变化?
- java - HttpDestination + TIMED_WAITING 每个目的地排队的 SOLR 最大请求数超过 3000