首页 > 解决方案 > N1QL 使用索引和 USE KEYS 查询

问题描述

我需要执行 N1QL 查询,其中一些记录可以通过索引属性选择,而其他记录可以通过它们的 ID 来识别。我试着用

SELECT name FROM b WHERE collection in $cList OR meta().id IN $idList

但这会返回一个错误,指出没有与我的查询匹配的可用索引。我可以将 UNION 与 2 个单独的查询一起使用:

SELECT name FROM b WHERE collection in $cList
UNION
SELECT name FROM b USE KEYS $idList

这是最好的方法吗?或者有什么方法可以在单个查询中组合索引和 USE KEYS 的结果?

标签: couchbasen1ql

解决方案


联合查询是最好的选择,因为 USE KEYS 可以直接从 KV 获取,而查询的其他部分可以使用索引。


推荐阅读